mirror of
https://github.com/fluencelabs/tendermint
synced 2025-05-02 18:12:15 +00:00
beginning to write pex
This commit is contained in:
parent
ec89eb168d
commit
a6f574658f
@ -1,12 +1,9 @@
|
||||
package peer
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
. "github.com/tendermint/tendermint/binary"
|
||||
)
|
||||
|
||||
type Message interface {
|
||||
Binary
|
||||
Type() string
|
||||
}
|
||||
|
@ -201,8 +201,8 @@ func NewPacket(chName String, bytes ByteSlice) Packet {
|
||||
}
|
||||
|
||||
func (p Packet) WriteTo(w io.Writer) (n int64, err error) {
|
||||
n, err = WriteOnto(&p.Channel, w, n, err)
|
||||
n, err = WriteOnto(&p.Bytes, w, n, err)
|
||||
n, err = WriteOnto(p.Channel, w, n, err)
|
||||
n, err = WriteOnto(p.Bytes, w, n, err)
|
||||
return
|
||||
}
|
||||
|
||||
|
67
peer/pex.go
Normal file
67
peer/pex.go
Normal file
@ -0,0 +1,67 @@
|
||||
package peer
|
||||
|
||||
import (
|
||||
. "github.com/tendermint/tendermint/binary"
|
||||
"io"
|
||||
)
|
||||
|
||||
const pexCh = "PEX"
|
||||
|
||||
func peerExchangeHandler(c *Client) {
|
||||
|
||||
for {
|
||||
// inPkt := c.Receive(pexCh) // {Peer, Time, Packet}
|
||||
|
||||
// decode message
|
||||
|
||||
// if message is a peer request
|
||||
|
||||
// if message is
|
||||
}
|
||||
|
||||
// cleanup
|
||||
|
||||
}
|
||||
|
||||
/* Messages */
|
||||
|
||||
const (
|
||||
pexTypeRequest = Byte(0x00)
|
||||
pexTypeResponse = Byte(0x01)
|
||||
)
|
||||
|
||||
func decodeMsg(bytes ByteSlice) (t Byte, msg Message) {
|
||||
//return pexTypeRequest, nil
|
||||
return pexTypeResponse, nil
|
||||
}
|
||||
|
||||
/*
|
||||
A response with peer addresses
|
||||
*/
|
||||
type pexResponseMsg struct {
|
||||
Addrs []*NetAddress
|
||||
}
|
||||
|
||||
func readPexResponseMsg(r io.Reader) *pexResponseMsg {
|
||||
numAddrs := int(ReadUInt32(r))
|
||||
addrs := []*NetAddress{}
|
||||
for i := 0; i < numAddrs; i++ {
|
||||
addr := ReadNetAddress(r)
|
||||
addrs = append(addrs, addr)
|
||||
}
|
||||
return &pexResponseMsg{
|
||||
Addrs: addrs,
|
||||
}
|
||||
}
|
||||
|
||||
func (m *pexResponseMsg) WriteTo(w io.Writer) (n int64, err error) {
|
||||
n, err = WriteOnto(UInt32(len(m.Addrs)), w, n, err)
|
||||
for _, addr := range m.Addrs {
|
||||
n, err = WriteOnto(addr, w, n, err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (m *pexResponseMsg) Type() string {
|
||||
return "pexTypeResponse"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user