Skip to content

Commit

Permalink
internal/ethapi: restore net_version RPC method (ethereum#22061)
Browse files Browse the repository at this point in the history
During the snap and eth refactor, the net_version rpc call was falsely deprecated.
This restores the net_version RPC handler as most eth2 nodes and other software
depend on it.
  • Loading branch information
MariusVanDerWijden authored Dec 23, 2020
1 parent 61469cf commit 158f72c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion eth/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ func New(stack *node.Node, config *Config) (*Ethereum, error) {
return nil, err
}
// Start the RPC service
eth.netRPCService = ethapi.NewPublicNetAPI(eth.p2pServer)
eth.netRPCService = ethapi.NewPublicNetAPI(eth.p2pServer, config.NetworkId)

// Register the backend on the node
stack.RegisterAPIs(eth.APIs())
Expand Down
12 changes: 9 additions & 3 deletions internal/ethapi/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -1900,12 +1900,13 @@ func (api *PrivateDebugAPI) SetHead(number hexutil.Uint64) {

// PublicNetAPI offers network related RPC methods
type PublicNetAPI struct {
net *p2p.Server
net *p2p.Server
networkVersion uint64
}

// NewPublicNetAPI creates a new net API instance.
func NewPublicNetAPI(net *p2p.Server) *PublicNetAPI {
return &PublicNetAPI{net}
func NewPublicNetAPI(net *p2p.Server, networkVersion uint64) *PublicNetAPI {
return &PublicNetAPI{net, networkVersion}
}

// Listening returns an indication if the node is listening for network connections.
Expand All @@ -1918,6 +1919,11 @@ func (s *PublicNetAPI) PeerCount() hexutil.Uint {
return hexutil.Uint(s.net.PeerCount())
}

// Version returns the current ethereum protocol version.
func (s *PublicNetAPI) Version() string {
return fmt.Sprintf("%d", s.networkVersion)
}

// checkTxFee is an internal function used to check whether the fee of
// the given transaction is _reasonable_(under the cap).
func checkTxFee(gasPrice *big.Int, gas uint64, cap float64) error {
Expand Down
2 changes: 1 addition & 1 deletion les/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ func New(stack *node.Node, config *eth.Config) (*LightEthereum, error) {
leth.blockchain.DisableCheckFreq()
}

leth.netRPCService = ethapi.NewPublicNetAPI(leth.p2pServer)
leth.netRPCService = ethapi.NewPublicNetAPI(leth.p2pServer, leth.config.NetworkId)

// Register the backend on the node
stack.RegisterAPIs(leth.APIs())
Expand Down

0 comments on commit 158f72c

Please sign in to comment.