Data send over the wire shouldn't be RLPed more then once
This commit is contained in:
parent
878e796c0a
commit
233f5200ef
@ -122,9 +122,10 @@ func (s *Ethereum) InboundPeers() []*Peer {
|
|||||||
return inboundPeers[:length]
|
return inboundPeers[:length]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Ethereum) Broadcast(msgType ethwire.MsgType, data []byte) {
|
func (s *Ethereum) Broadcast(msgType ethwire.MsgType, data interface{}) {
|
||||||
|
msg := ethwire.NewMessage(msgType, data)
|
||||||
eachPeer(s.peers, func(p *Peer, e *list.Element) {
|
eachPeer(s.peers, func(p *Peer, e *list.Element) {
|
||||||
p.QueueMessage(ethwire.NewMessage(msgType, data))
|
p.QueueMessage(msg)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
15
peer.go
15
peer.go
@ -170,12 +170,15 @@ out:
|
|||||||
// Version message
|
// Version message
|
||||||
p.handleHandshake(msg)
|
p.handleHandshake(msg)
|
||||||
case ethwire.MsgBlockTy:
|
case ethwire.MsgBlockTy:
|
||||||
err := p.ethereum.BlockManager.ProcessBlock(ethchain.NewBlock(msg.Data))
|
/*
|
||||||
if err != nil {
|
err := p.ethereum.BlockManager.ProcessBlock(ethchain.NewBlock(msg.Data))
|
||||||
log.Println(err)
|
if err != nil {
|
||||||
}
|
log.Println(err)
|
||||||
|
}
|
||||||
|
*/
|
||||||
case ethwire.MsgTxTy:
|
case ethwire.MsgTxTy:
|
||||||
p.ethereum.TxPool.QueueTransaction(ethutil.NewTransactionFromData(msg.Data))
|
//p.ethereum.TxPool.QueueTransaction(ethchain.NewTransactionFromData(msg.Data))
|
||||||
|
p.ethereum.TxPool.QueueTransaction(ethchain.NewTransactionFromRlpValue(msg.Data.Get(0)))
|
||||||
case ethwire.MsgInvTy:
|
case ethwire.MsgInvTy:
|
||||||
case ethwire.MsgGetPeersTy:
|
case ethwire.MsgGetPeersTy:
|
||||||
p.requestedPeerList = true
|
p.requestedPeerList = true
|
||||||
@ -263,7 +266,7 @@ func (p *Peer) pushPeers() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *Peer) handleHandshake(msg *ethwire.Msg) {
|
func (p *Peer) handleHandshake(msg *ethwire.Msg) {
|
||||||
c := ethutil.Conv(msg.Data)
|
c := msg.Data
|
||||||
// [PROTOCOL_VERSION, NETWORK_ID, CLIENT_ID]
|
// [PROTOCOL_VERSION, NETWORK_ID, CLIENT_ID]
|
||||||
if c.Get(2).AsUint() == p.ethereum.Nonce {
|
if c.Get(2).AsUint() == p.ethereum.Nonce {
|
||||||
//if msg.Nonce == p.ethereum.Nonce {
|
//if msg.Nonce == p.ethereum.Nonce {
|
||||||
|
Loading…
Reference in New Issue
Block a user