Documentation ¶
Overview ¶
Package eth implements the Ethereum protocol.
Index ¶
- Constants
- Variables
- func BlockchainRuntimeConfig(config *Config) (vm.Config, *core.CacheConfig)
- type BadBlockArgs
- type Config
- type EthAPIBackend
- func (b *EthAPIBackend) AccountManager() *accounts.Manager
- func (b *EthAPIBackend) BlockByHash(ctx context.Context, hash common.Hash) (*types.Block, error)
- func (b *EthAPIBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Block, error)
- func (b *EthAPIBackend) BlockByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Block, error)
- func (b *EthAPIBackend) BloomStatus() (uint64, uint64)
- func (b *EthAPIBackend) ChainConfig() *params.ChainConfig
- func (b *EthAPIBackend) ChainDb() ethdb.Database
- func (b *EthAPIBackend) CurrentBlock() *types.Block
- func (b *EthAPIBackend) CurrentHeader() *types.Header
- func (b *EthAPIBackend) Downloader() *downloader.Downloader
- func (b *EthAPIBackend) Engine() consensus.Engine
- func (b *EthAPIBackend) EventMux() *event.TypeMux
- func (b *EthAPIBackend) ExtRPCEnabled() bool
- func (b *EthAPIBackend) GetEVM(ctx context.Context, msg core.Message, state *state.IntraBlockState, ...) (*vm.EVM, func() error, error)
- func (b *EthAPIBackend) GetLogs(ctx context.Context, hash common.Hash) ([][]*types.Log, error)
- func (b *EthAPIBackend) GetPoolNonce(ctx context.Context, addr common.Address) (uint64, error)
- func (b *EthAPIBackend) GetPoolTransaction(hash common.Hash) *types.Transaction
- func (b *EthAPIBackend) GetPoolTransactions() (types.Transactions, error)
- func (b *EthAPIBackend) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error)
- func (b *EthAPIBackend) GetTd(ctx context.Context, hash common.Hash) *big.Int
- func (b *EthAPIBackend) GetTransaction(ctx context.Context, txHash common.Hash) (*types.Transaction, common.Hash, uint64, uint64, error)
- func (b *EthAPIBackend) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error)
- func (b *EthAPIBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Header, error)
- func (b *EthAPIBackend) HeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Header, error)
- func (b *EthAPIBackend) Miner() *miner.Miner
- func (b *EthAPIBackend) RPCGasCap() uint64
- func (b *EthAPIBackend) RPCTxFeeCap() float64
- func (b *EthAPIBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error
- func (b *EthAPIBackend) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession)
- func (b *EthAPIBackend) SetHead(number uint64)
- func (b *EthAPIBackend) StartMining(threads int) error
- func (b *EthAPIBackend) StateAndHeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*state.IntraBlockState, *types.Header, error)
- func (b *EthAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*state.IntraBlockState, *types.Header, error)
- func (b *EthAPIBackend) StateAtBlock(ctx context.Context, block *types.Block, reexec uint64) (*state.IntraBlockState, func(), error)
- func (b *EthAPIBackend) StateAtTransaction(ctx context.Context, block *types.Block, txIndex int, reexec uint64) (core.Message, vm.BlockContext, *state.IntraBlockState, func(), error)
- func (b *EthAPIBackend) StatesInRange(ctx context.Context, fromBlock *types.Block, toBlock *types.Block, ...) ([]*state.IntraBlockState, func(), error)
- func (b *EthAPIBackend) Stats() (pending int, queued int)
- func (b *EthAPIBackend) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription
- func (b *EthAPIBackend) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription
- func (b *EthAPIBackend) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription
- func (b *EthAPIBackend) SubscribePendingLogsEvent(ch chan<- []*types.Log) event.Subscription
- func (b *EthAPIBackend) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription
- func (b *EthAPIBackend) SuggestPrice(ctx context.Context) (*big.Int, error)
- func (b *EthAPIBackend) TxPool() *core.TxPool
- func (b *EthAPIBackend) TxPoolContent() (map[common.Address]types.Transactions, map[common.Address]types.Transactions)
- func (b *EthAPIBackend) UnprotectedAllowed() bool
- type Ethereum
- func (s *Ethereum) APIs() []rpc.API
- func (s *Ethereum) AccountManager() *accounts.Manager
- func (s *Ethereum) ArchiveMode() bool
- func (s *Ethereum) BlockChain() *core.BlockChain
- func (s *Ethereum) ChainDb() ethdb.Database
- func (s *Ethereum) ChainKV() ethdb.KV
- func (s *Ethereum) Downloader() *downloader.Downloader
- func (s *Ethereum) Engine() consensus.Engine
- func (s *Ethereum) Etherbase() (eb common.Address, err error)
- func (s *Ethereum) EventMux() *event.TypeMux
- func (s *Ethereum) IsListening() bool
- func (s *Ethereum) IsMining() bool
- func (s *Ethereum) Miner() *miner.Miner
- func (s *Ethereum) NetVersion() (uint64, error)
- func (s *Ethereum) Protocols() []p2p.Protocol
- func (s *Ethereum) ResetWithGenesisBlock(gb *types.Block)
- func (s *Ethereum) SetEtherbase(etherbase common.Address)
- func (s *Ethereum) Start() error
- func (s *Ethereum) StartMining(threads int) error
- func (s *Ethereum) Stop() error
- func (s *Ethereum) StopMining()
- func (s *Ethereum) SyncProgress() ethereum.SyncProgress
- func (s *Ethereum) Synced() bool
- func (s *Ethereum) TxPool() *core.TxPool
- type Status
Constants ¶
const ( GetStateRangesCode = 0x00 StateRangesCode = 0x01 GetStorageRangesCode = 0x02 StorageRangesCode = 0x03 GetStateNodesCode = 0x04 StateNodesCode = 0x05 GetStorageNodesCode = 0x06 StorageNodesCode = 0x07 GetBytecodeCode = 0x08 BytecodeCode = 0x09 GetStorageSizesCode = 0x0a StorageSizesCode = 0x0b )
Firehose protocol message codes
const AccountRangeMaxResults = 256
AccountRangeMaxResults is the maximum number of results to be returned per call
const DebugMaxMsgSize = 10 * 1024 * 1024
const DebugName = "dbg" // Parity only supports 3 letter capabilities
const (
DebugSetGenesisMsg = 0x00
)
Debug customization for simulator, move it to sub-protocol
const FirehoseMaxMsgSize = 10 * 1024 * 1024
FirehoseMaxMsgSize is the maximum cap on the size of a message.
const MaxLeavesPerPrefix = 4096
MaxLeavesPerPrefix is the maximum number of leaves allowed per prefix.
Variables ¶
var DebugLengths = map[uint]uint64{/* contains filtered or unexported fields */}
var DebugVersions = []uint{dbg1}
var FirehoseLengths = []uint64{12}
FirehoseLengths are the number of implemented message corresponding to different protocol versions.
var FirehoseName = "frh" // Parity only supports 3 letter capabilities
FirehoseName is the official short name of the protocol used during capability negotiation.
var FirehoseVersions = []uint{1}
FirehoseVersions are the supported versions of the Firehose protocol.
Functions ¶
func BlockchainRuntimeConfig ¶
func BlockchainRuntimeConfig(config *Config) (vm.Config, *core.CacheConfig)
Types ¶
type BadBlockArgs ¶
type BadBlockArgs struct { Hash common.Hash `json:"hash"` Block map[string]interface{} `json:"block"` RLP string `json:"rlp"` }
BadBlockArgs represents the entries in the list returned when bad blocks are queried.
type Config ¶
Config contains the configuration options of the ETH protocol. Deprecated: use ethconfig.Config instead.
type EthAPIBackend ¶
type EthAPIBackend struct {
// contains filtered or unexported fields
}
EthAPIBackend implements ethapi.Backend for full nodes
func (*EthAPIBackend) AccountManager ¶
func (b *EthAPIBackend) AccountManager() *accounts.Manager
func (*EthAPIBackend) BlockByHash ¶
func (*EthAPIBackend) BlockByNumber ¶
func (b *EthAPIBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Block, error)
func (*EthAPIBackend) BlockByNumberOrHash ¶
func (b *EthAPIBackend) BlockByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Block, error)
func (*EthAPIBackend) BloomStatus ¶
func (b *EthAPIBackend) BloomStatus() (uint64, uint64)
func (*EthAPIBackend) ChainConfig ¶
func (b *EthAPIBackend) ChainConfig() *params.ChainConfig
ChainConfig returns the active chain configuration.
func (*EthAPIBackend) ChainDb ¶
func (b *EthAPIBackend) ChainDb() ethdb.Database
func (*EthAPIBackend) CurrentBlock ¶
func (b *EthAPIBackend) CurrentBlock() *types.Block
func (*EthAPIBackend) CurrentHeader ¶
func (b *EthAPIBackend) CurrentHeader() *types.Header
func (*EthAPIBackend) Downloader ¶
func (b *EthAPIBackend) Downloader() *downloader.Downloader
func (*EthAPIBackend) Engine ¶
func (b *EthAPIBackend) Engine() consensus.Engine
func (*EthAPIBackend) EventMux ¶
func (b *EthAPIBackend) EventMux() *event.TypeMux
func (*EthAPIBackend) ExtRPCEnabled ¶
func (b *EthAPIBackend) ExtRPCEnabled() bool
func (*EthAPIBackend) GetPoolNonce ¶
func (*EthAPIBackend) GetPoolTransaction ¶
func (b *EthAPIBackend) GetPoolTransaction(hash common.Hash) *types.Transaction
func (*EthAPIBackend) GetPoolTransactions ¶
func (b *EthAPIBackend) GetPoolTransactions() (types.Transactions, error)
func (*EthAPIBackend) GetReceipts ¶
func (*EthAPIBackend) GetTransaction ¶
func (*EthAPIBackend) HeaderByHash ¶
func (*EthAPIBackend) HeaderByNumber ¶
func (b *EthAPIBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*types.Header, error)
func (*EthAPIBackend) HeaderByNumberOrHash ¶
func (b *EthAPIBackend) HeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*types.Header, error)
func (*EthAPIBackend) Miner ¶
func (b *EthAPIBackend) Miner() *miner.Miner
func (*EthAPIBackend) RPCGasCap ¶
func (b *EthAPIBackend) RPCGasCap() uint64
func (*EthAPIBackend) RPCTxFeeCap ¶
func (b *EthAPIBackend) RPCTxFeeCap() float64
func (*EthAPIBackend) SendTx ¶
func (b *EthAPIBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error
func (*EthAPIBackend) ServiceFilter ¶
func (b *EthAPIBackend) ServiceFilter(ctx context.Context, session *bloombits.MatcherSession)
func (*EthAPIBackend) SetHead ¶
func (b *EthAPIBackend) SetHead(number uint64)
func (*EthAPIBackend) StartMining ¶
func (b *EthAPIBackend) StartMining(threads int) error
func (*EthAPIBackend) StateAndHeaderByNumber ¶
func (b *EthAPIBackend) StateAndHeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*state.IntraBlockState, *types.Header, error)
func (*EthAPIBackend) StateAndHeaderByNumberOrHash ¶
func (b *EthAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*state.IntraBlockState, *types.Header, error)
func (*EthAPIBackend) StateAtBlock ¶
func (b *EthAPIBackend) StateAtBlock(ctx context.Context, block *types.Block, reexec uint64) (*state.IntraBlockState, func(), error)
func (*EthAPIBackend) StateAtTransaction ¶
func (b *EthAPIBackend) StateAtTransaction(ctx context.Context, block *types.Block, txIndex int, reexec uint64) (core.Message, vm.BlockContext, *state.IntraBlockState, func(), error)
func (*EthAPIBackend) StatesInRange ¶
func (*EthAPIBackend) Stats ¶
func (b *EthAPIBackend) Stats() (pending int, queued int)
func (*EthAPIBackend) SubscribeChainEvent ¶
func (b *EthAPIBackend) SubscribeChainEvent(ch chan<- core.ChainEvent) event.Subscription
func (*EthAPIBackend) SubscribeChainHeadEvent ¶
func (b *EthAPIBackend) SubscribeChainHeadEvent(ch chan<- core.ChainHeadEvent) event.Subscription
func (*EthAPIBackend) SubscribeChainSideEvent ¶
func (b *EthAPIBackend) SubscribeChainSideEvent(ch chan<- core.ChainSideEvent) event.Subscription
func (*EthAPIBackend) SubscribeLogsEvent ¶
func (b *EthAPIBackend) SubscribeLogsEvent(ch chan<- []*types.Log) event.Subscription
func (*EthAPIBackend) SubscribeNewTxsEvent ¶
func (b *EthAPIBackend) SubscribeNewTxsEvent(ch chan<- core.NewTxsEvent) event.Subscription
func (*EthAPIBackend) SubscribePendingLogsEvent ¶
func (b *EthAPIBackend) SubscribePendingLogsEvent(ch chan<- []*types.Log) event.Subscription
func (*EthAPIBackend) SubscribeRemovedLogsEvent ¶
func (b *EthAPIBackend) SubscribeRemovedLogsEvent(ch chan<- core.RemovedLogsEvent) event.Subscription
func (*EthAPIBackend) SuggestPrice ¶
func (*EthAPIBackend) TxPool ¶
func (b *EthAPIBackend) TxPool() *core.TxPool
func (*EthAPIBackend) TxPoolContent ¶
func (b *EthAPIBackend) TxPoolContent() (map[common.Address]types.Transactions, map[common.Address]types.Transactions)
func (*EthAPIBackend) UnprotectedAllowed ¶
func (b *EthAPIBackend) UnprotectedAllowed() bool
type Ethereum ¶
type Ethereum struct { APIBackend *EthAPIBackend // contains filtered or unexported fields }
Ethereum implements the Ethereum full node service.
func New ¶
New creates a new Ethereum object (including the initialisation of the common Ethereum object)
func (*Ethereum) APIs ¶
APIs return the collection of RPC services the ethereum package offers. NOTE, some of these services probably need to be moved to somewhere else.
func (*Ethereum) AccountManager ¶
func (*Ethereum) ArchiveMode ¶
func (*Ethereum) BlockChain ¶
func (s *Ethereum) BlockChain() *core.BlockChain
func (*Ethereum) Downloader ¶
func (s *Ethereum) Downloader() *downloader.Downloader
func (*Ethereum) IsListening ¶
func (*Ethereum) NetVersion ¶
func (*Ethereum) Protocols ¶
Protocols returns all the currently configured network protocols to start.
func (*Ethereum) ResetWithGenesisBlock ¶
func (*Ethereum) SetEtherbase ¶
SetEtherbase sets the mining reward address.
func (*Ethereum) Start ¶
Start implements node.Lifecycle, starting all internal goroutines needed by the Ethereum protocol implementation.
func (*Ethereum) StartMining ¶
StartMining starts the miner with the given number of CPU threads. If mining is already running, this method adjust the number of threads allowed to use and updates the minimum price required by the transaction pool.
func (*Ethereum) Stop ¶
Stop implements node.Service, terminating all internal goroutines used by the Ethereum protocol.
func (*Ethereum) StopMining ¶
func (s *Ethereum) StopMining()
StopMining terminates the miner, both at the consensus engine level as well as at the block creation level.
func (*Ethereum) SyncProgress ¶
func (s *Ethereum) SyncProgress() ethereum.SyncProgress
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package downloader contains the manual full chain synchronisation.
|
Package downloader contains the manual full chain synchronisation. |
Package ethconfig contains the configuration of the ETH and LES protocols.
|
Package ethconfig contains the configuration of the ETH and LES protocols. |
Package fetcher contains the announcement based header, blocks or transaction synchronisation.
|
Package fetcher contains the announcement based header, blocks or transaction synchronisation. |
Package filters implements an ethereum filtering system for block, transactions and log events.
|
Package filters implements an ethereum filtering system for block, transactions and log events. |
protocols
|
|
Package tracers is a collection of JavaScript transaction tracers.
|
Package tracers is a collection of JavaScript transaction tracers. |
internal/tracers
Package tracers contains the actual JavaScript tracer assets.
|
Package tracers contains the actual JavaScript tracer assets. |