diff options
author | Jeffrey Wilcke <geffobscura@gmail.com> | 2015-07-07 21:12:56 +0800 |
---|---|---|
committer | Jeffrey Wilcke <geffobscura@gmail.com> | 2015-07-07 21:12:56 +0800 |
commit | 193c62fdba3bb5c40daad6652c18d81d43518235 (patch) | |
tree | 4b77244b1ce72160a1434036977c7a473781665c /eth/protocol.go | |
parent | a2ce7b99501b3273b4cee65cd6784c7d1c4645f7 (diff) | |
parent | d673c34c8d4ae83a3765ed44ae9d0fb7ce1aa3c9 (diff) | |
download | go-tangerine-193c62fdba3bb5c40daad6652c18d81d43518235.tar go-tangerine-193c62fdba3bb5c40daad6652c18d81d43518235.tar.gz go-tangerine-193c62fdba3bb5c40daad6652c18d81d43518235.tar.bz2 go-tangerine-193c62fdba3bb5c40daad6652c18d81d43518235.tar.lz go-tangerine-193c62fdba3bb5c40daad6652c18d81d43518235.tar.xz go-tangerine-193c62fdba3bb5c40daad6652c18d81d43518235.tar.zst go-tangerine-193c62fdba3bb5c40daad6652c18d81d43518235.zip |
Merge branch 'release/0.9.36'
Diffstat (limited to 'eth/protocol.go')
-rw-r--r-- | eth/protocol.go | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/eth/protocol.go b/eth/protocol.go index 57805d9bd..704a637e2 100644 --- a/eth/protocol.go +++ b/eth/protocol.go @@ -1,3 +1,19 @@ +// Copyright 2014 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. + package eth import ( @@ -7,11 +23,15 @@ import ( "github.com/ethereum/go-ethereum/core/types" ) +// Supported versions of the eth protocol (first is primary). +var ProtocolVersions = []uint{61, 60} + +// Number of implemented message corresponding to different protocol versions. +var ProtocolLengths = []uint64{9, 8} + const ( - ProtocolVersion = 60 NetworkId = 0 - ProtocolLength = uint64(8) - ProtocolMaxMsgSize = 10 * 1024 * 1024 + ProtocolMaxMsgSize = 10 * 1024 * 1024 // Maximum cap on the size of a protocol message ) // eth protocol message codes @@ -24,6 +44,7 @@ const ( GetBlocksMsg BlocksMsg NewBlockMsg + GetBlockHashesFromNumberMsg ) type errCode int @@ -72,8 +93,31 @@ type chainManager interface { Status() (td *big.Int, currentBlock common.Hash, genesisBlock common.Hash) } -// message structs used for RLP serialization -type newBlockMsgData struct { +// statusData is the network packet for the status message. +type statusData struct { + ProtocolVersion uint32 + NetworkId uint32 + TD *big.Int + CurrentBlock common.Hash + GenesisBlock common.Hash +} + +// getBlockHashesData is the network packet for the hash based block retrieval +// message. +type getBlockHashesData struct { + Hash common.Hash + Amount uint64 +} + +// getBlockHashesFromNumberData is the network packet for the number based block +// retrieval message. +type getBlockHashesFromNumberData struct { + Number uint64 + Amount uint64 +} + +// newBlockData is the network packet for the block propagation message. +type newBlockData struct { Block *types.Block TD *big.Int } |