|
|
|
@ -32,7 +32,6 @@ import ( |
|
|
|
|
"github.com/ethereum/go-ethereum/core" |
|
|
|
|
"github.com/ethereum/go-ethereum/core/state" |
|
|
|
|
"github.com/ethereum/go-ethereum/core/types" |
|
|
|
|
"github.com/ethereum/go-ethereum/eth" |
|
|
|
|
"github.com/ethereum/go-ethereum/eth/downloader" |
|
|
|
|
"github.com/ethereum/go-ethereum/ethdb" |
|
|
|
|
"github.com/ethereum/go-ethereum/event" |
|
|
|
@ -73,6 +72,7 @@ func errResp(code errCode, format string, v ...interface{}) error { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type BlockChain interface { |
|
|
|
|
Config() *params.ChainConfig |
|
|
|
|
HasHeader(hash common.Hash, number uint64) bool |
|
|
|
|
GetHeader(hash common.Hash, number uint64) *types.Header |
|
|
|
|
GetHeaderByHash(hash common.Hash) *types.Header |
|
|
|
@ -1123,12 +1123,23 @@ func (pm *ProtocolManager) txStatus(hashes []common.Hash) []txStatus { |
|
|
|
|
return stats |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// NodeInfo represents a short summary of the Ethereum sub-protocol metadata
|
|
|
|
|
// known about the host peer.
|
|
|
|
|
type NodeInfo struct { |
|
|
|
|
Network uint64 `json:"network"` // Ethereum network ID (1=Frontier, 2=Morden, Ropsten=3, Rinkeby=4)
|
|
|
|
|
Difficulty *big.Int `json:"difficulty"` // Total difficulty of the host's blockchain
|
|
|
|
|
Genesis common.Hash `json:"genesis"` // SHA3 hash of the host's genesis block
|
|
|
|
|
Config *params.ChainConfig `json:"config"` // Chain configuration for the fork rules
|
|
|
|
|
Head common.Hash `json:"head"` // SHA3 hash of the host's best owned block
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// NodeInfo retrieves some protocol metadata about the running host node.
|
|
|
|
|
func (self *ProtocolManager) NodeInfo() *eth.EthNodeInfo { |
|
|
|
|
return ð.EthNodeInfo{ |
|
|
|
|
func (self *ProtocolManager) NodeInfo() *NodeInfo { |
|
|
|
|
return &NodeInfo{ |
|
|
|
|
Network: self.networkId, |
|
|
|
|
Difficulty: self.blockchain.GetTdByHash(self.blockchain.LastBlockHash()), |
|
|
|
|
Genesis: self.blockchain.Genesis().Hash(), |
|
|
|
|
Config: self.blockchain.Config(), |
|
|
|
|
Head: self.blockchain.LastBlockHash(), |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|