|
| | Client (ChainParams const &_params, int _networkID, p2p::Host &_host, std::shared_ptr< GasPricer > _gpForAdoption, boost::filesystem::path const &_dbPath=boost::filesystem::path(), boost::filesystem::path const &_snapshotPath=boost::filesystem::path(), WithExisting _forceAction=WithExisting::Trust, TransactionQueue::Limits const &_l=TransactionQueue::Limits{1024, 1024}) |
| |
| virtual | ~Client () |
| | Destructor. More...
|
| |
| ChainParams const & | chainParams () const |
| | Get information on this chain. More...
|
| |
| void | setGasPricer (std::shared_ptr< GasPricer > _gp) |
| | Resets the gas pricer to some other object. More...
|
| |
| std::shared_ptr< GasPricer > | gasPricer () const |
| |
| h256 | submitTransaction (TransactionSkeleton const &_t, Secret const &_secret) override |
| |
| h256 | importTransaction (Transaction const &_t) override |
| | Imports the given transaction into the transaction queue. More...
|
| |
| ExecutionResult | call (Address const &_secret, u256 _value, Address _dest, bytes const &_data, u256 _gas, u256 _gasPrice, BlockNumber _blockNumber, FudgeFactor _ff=FudgeFactor::Strict) override |
| | Makes the given call. Nothing is recorded into the state. More...
|
| |
| void | flushTransactions () override |
| | Blocks until all pending transactions have been processed. More...
|
| |
| Transactions | pending () const override |
| | Retrieve pending transactions. More...
|
| |
| ImportResult | queueBlock (bytes const &_block, bool _isSafe=false) |
| | Queues a block for import. More...
|
| |
| u256 | gasLimitRemaining () const override |
| | Get the remaining gas limit in this block. More...
|
| |
| u256 | gasBidPrice () const override |
| | Get the gas bid price. More...
|
| |
| dev::eth::Block | block (h256 const &_blockHash, PopulationStatistics *o_stats) const |
| | Get the block. More...
|
| |
| dev::eth::Block | postState () const |
| | Get the object representing the current state of Ethereum. More...
|
| |
| BlockChain const & | blockChain () const |
| | Get the object representing the current canonical blockchain. More...
|
| |
| BlockQueueStatus | blockQueueStatus () const |
| | Get some information on the block queue. More...
|
| |
| SyncStatus | syncStatus () const override |
| | Get some information on the block syncing. More...
|
| |
| TransactionSkeleton | populateTransactionWithDefaults (TransactionSkeleton const &_t) const override |
| | Populate the uninitialized fields in the supplied transaction with default values. More...
|
| |
| BlockQueue const & | blockQueue () const |
| | Get the block queue. More...
|
| |
| OverlayDB const & | stateDB () const |
| | Get the state database. More...
|
| |
| TransactionQueue::Status | transactionQueueStatus () const |
| | Get some information on the transaction queue. More...
|
| |
| TransactionQueue::Limits | transactionQueueLimits () const |
| |
| std::tuple< ImportRoute, bool, unsigned > | syncQueue (unsigned _max=1) |
| | Freeze worker thread and sync some of the block queue. More...
|
| |
| Address | author () const override |
| | Get the block author address. More...
|
| |
| void | setAuthor (Address const &_us) override |
| | Set the block author address. More...
|
| |
| strings | sealers () const |
| | Type of sealers available for this seal engine. More...
|
| |
| std::string | sealer () const |
| | Current sealer in use. More...
|
| |
| void | setSealer (std::string const &_id) |
| | Change sealer. More...
|
| |
| bytes | sealOption (std::string const &_name) const |
| | Review option for the sealer. More...
|
| |
| bool | setSealOption (std::string const &_name, bytes const &_value) |
| | Set option for the sealer. More...
|
| |
| void | startSealing () override |
| | Start sealing. More...
|
| |
| void | stopSealing () override |
| | Stop sealing. More...
|
| |
| bool | wouldSeal () const override |
| | Are we sealing now? More...
|
| |
| bool | isSyncing () const override |
| | Are we updating the chain (syncing or importing a new block)? More...
|
| |
| bool | isMajorSyncing () const override |
| | Are we syncing the chain? More...
|
| |
| u256 | networkId () const override |
| | Gets the network id. More...
|
| |
| void | setNetworkId (u256 const &_n) override |
| | Sets the network id. More...
|
| |
| SealEngineFace * | sealEngine () const override |
| | Get the seal engine. More...
|
| |
| DownloadMan const * | downloadMan () const |
| |
| void | clearPending () |
| | Clears pending transactions. Just for debug use. More...
|
| |
| void | killChain () |
| | Kills the blockchain. Just for debug use. More...
|
| |
| void | reopenChain (ChainParams const &_p, WithExisting _we=WithExisting::Trust) |
| | Reloads the blockchain. Just for debug use. More...
|
| |
| void | reopenChain (WithExisting _we) |
| |
| void | retryUnknown () |
| | Retries all blocks with unknown parents. More...
|
| |
| ActivityReport | activityReport () |
| | Get a report of activity. More...
|
| |
| void | setExtraData (bytes const &_extraData) |
| | Set the extra data that goes into sealed blocks. More...
|
| |
| void | rewind (unsigned _n) |
| | Rewind to a prior head. More...
|
| |
| void | rescue () |
| | Rescue the chain. More...
|
| |
| std::unique_ptr< StateImporterFace > | createStateImporter () |
| |
| std::unique_ptr< BlockChainImporterFace > | createBlockChainImporter () |
| |
| void | executeInMainThread (std::function< void()> const &_function) |
| | Queues a function to be executed in the main thread (that owns the blockchain, etc). More...
|
| |
| Block | block (h256 const &_block) const override |
| |
| void | startWorking () |
| | should be called after the constructor of the most derived class finishes. More...
|
| |
| Handler< bytes const & > | setOnBlockSealed (std::function< void(bytes const &)> _handler) |
| | Change the function that is called when a new block is sealed. More...
|
| |
| Handler< h256s const &, h256s const & > | setOnChainChanged (std::function< void(h256s const &, h256s const &)> _handler) |
| | Change the function that is called when blockchain was changed. More...
|
| |
| std::tuple< h256, h256, h256 > | getWork () override |
| |
| virtual Block | block (h256 const &_h) const=0 |
| |
| | ClientBase () |
| |
| virtual | ~ClientBase () |
| |
| std::pair< u256, ExecutionResult > | estimateGas (Address const &_from, u256 _value, Address _dest, bytes const &_data, int64_t _maxGas, u256 _gasPrice, BlockNumber _blockNumber, GasEstimationCallback const &_callback) override |
| |
| u256 | balanceAt (Address _a, BlockNumber _block) const override |
| |
| u256 | countAt (Address _a, BlockNumber _block) const override |
| |
| u256 | stateAt (Address _a, u256 _l, BlockNumber _block) const override |
| |
| h256 | stateRootAt (Address _a, BlockNumber _block) const override |
| |
| bytes | codeAt (Address _a, BlockNumber _block) const override |
| |
| h256 | codeHashAt (Address _a, BlockNumber _block) const override |
| |
| std::map< h256, std::pair< u256, u256 > > | storageAt (Address _a, BlockNumber _block) const override |
| |
| LocalisedLogEntries | logs (unsigned _watchId) const override |
| |
| LocalisedLogEntries | logs (LogFilter const &_filter) const override |
| |
| virtual void | prependLogsFromBlock (LogFilter const &_filter, h256 const &_blockHash, BlockPolarity _polarity, LocalisedLogEntries &io_logs) const |
| |
| unsigned | installWatch (LogFilter const &_filter, Reaping _r=Reaping::Automatic) override |
| | Install, uninstall and query watches. More...
|
| |
| unsigned | installWatch (h256 _filterId, Reaping _r=Reaping::Automatic) override |
| |
| bool | uninstallWatch (unsigned _watchId) override |
| |
| LocalisedLogEntries | peekWatch (unsigned _watchId) const override |
| |
| LocalisedLogEntries | checkWatch (unsigned _watchId) override |
| |
| h256 | hashFromNumber (BlockNumber _number) const override |
| |
| BlockNumber | numberFromHash (h256 _blockHash) const override |
| |
| int | compareBlockHashes (h256 _h1, h256 _h2) const override |
| |
| BlockHeader | blockInfo (h256 _hash) const override |
| |
| BlockDetails | blockDetails (h256 _hash) const override |
| |
| Transaction | transaction (h256 _transactionHash) const override |
| |
| LocalisedTransaction | localisedTransaction (h256 const &_transactionHash) const override |
| |
| Transaction | transaction (h256 _blockHash, unsigned _i) const override |
| |
| LocalisedTransaction | localisedTransaction (h256 const &_blockHash, unsigned _i) const override |
| |
| TransactionReceipt | transactionReceipt (h256 const &_transactionHash) const override |
| |
| LocalisedTransactionReceipt | localisedTransactionReceipt (h256 const &_transactionHash) const override |
| |
| std::pair< h256, unsigned > | transactionLocation (h256 const &_transactionHash) const override |
| |
| Transactions | transactions (h256 _blockHash) const override |
| |
| Transactions | transactions (BlockNumber _block) const override |
| |
| TransactionHashes | transactionHashes (h256 _blockHash) const override |
| |
| BlockHeader | uncle (h256 _blockHash, unsigned _i) const override |
| |
| UncleHashes | uncleHashes (h256 _blockHash) const override |
| |
| unsigned | transactionCount (h256 _blockHash) const override |
| |
| unsigned | transactionCount (BlockNumber _block) const override |
| |
| unsigned | uncleCount (h256 _blockHash) const override |
| |
| unsigned | number () const override |
| |
| h256s | pendingHashes () const override |
| |
| BlockHeader | pendingInfo () const override |
| |
| BlockDetails | pendingDetails () const override |
| |
| EVMSchedule | evmSchedule () const override |
| |
| ImportResult | injectBlock (bytes const &_block) override |
| | Injects the RLP-encoded block given by the _rlp into the block queue directly. More...
|
| |
| Addresses | addresses (BlockNumber _block) const override |
| |
| u256 | gasLimitRemaining () const override |
| | Get the remaining gas limit in this block. More...
|
| |
| u256 | gasBidPrice () const override |
| |
| Address | author () const override |
| | Get the block author. More...
|
| |
| bool | isKnown (h256 const &_hash) const override |
| |
| bool | isKnown (BlockNumber _block) const override |
| |
| bool | isKnownTransaction (h256 const &_transactionHash) const override |
| |
| bool | isKnownTransaction (h256 const &_blockHash, unsigned _i) const override |
| |
| void | startSealing () override |
| |
| void | stopSealing () override |
| |
| bool | wouldSeal () const override |
| | Would we like to be sealing now? More...
|
| |
| SyncStatus | syncStatus () const override |
| | Get some information on the block queue. More...
|
| |
| Block | blockByNumber (BlockNumber _h) const |
| |
| int | chainId () const override |
| | Gets the chain id. More...
|
| |
| u256 | balanceAt (Address _a) const |
| |
| virtual u256 | balanceAt (Address _a, BlockNumber _block) const=0 |
| |
| u256 | countAt (Address _a) const |
| |
| virtual u256 | countAt (Address _a, BlockNumber _block) const=0 |
| |
| u256 | stateAt (Address _a, u256 _l) const |
| |
| virtual u256 | stateAt (Address _a, u256 _l, BlockNumber _block) const=0 |
| |
| bytes | codeAt (Address _a) const |
| |
| virtual bytes | codeAt (Address _a, BlockNumber _block) const=0 |
| |
| h256 | codeHashAt (Address _a) const |
| |
| virtual h256 | codeHashAt (Address _a, BlockNumber _block) const=0 |
| |
| std::map< h256, std::pair< u256, u256 > > | storageAt (Address _a) const |
| |
| virtual std::map< h256, std::pair< u256, u256 > > | storageAt (Address _a, BlockNumber _block) const=0 |
| |
| virtual Addresses | addresses () const |
| |
| virtual Addresses | addresses (BlockNumber _block) const=0 |
| |
| | Interface () |
| | Constructor. More...
|
| |
| virtual | ~Interface () |
| | Destructor. More...
|
| |
| void | submitTransaction (Secret const &_secret, u256 const &_value, Address const &_dest, bytes const &_data=bytes(), u256 const &_gas=1000000, u256 const &_gasPrice=DefaultGasPrice, u256 const &_nonce=Invalid256) |
| | Submits the given message-call transaction. More...
|
| |
| ExecutionResult | call (Address const &_from, u256 _value, Address _dest, bytes const &_data=bytes(), u256 _gas=1000000, u256 _gasPrice=DefaultGasPrice, FudgeFactor _ff=FudgeFactor::Strict) |
| |
| ExecutionResult | call (Secret const &_secret, u256 _value, Address _dest, bytes const &_data, u256 _gas, u256 _gasPrice, BlockNumber _blockNumber, FudgeFactor _ff=FudgeFactor::Strict) |
| |
| ExecutionResult | call (Secret const &_secret, u256 _value, Address _dest, bytes const &_data, u256 _gas, u256 _gasPrice, FudgeFactor _ff=FudgeFactor::Strict) |
| |
| int | getDefault () const |
| |
| void | setDefault (BlockNumber _block) |
| |
| u256 | balanceAt (Address _a) const |
| |
| u256 | countAt (Address _a) const |
| |
| u256 | stateAt (Address _a, u256 _l) const |
| |
| bytes | codeAt (Address _a) const |
| |
| h256 | codeHashAt (Address _a) const |
| |
| std::map< h256, std::pair< u256, u256 > > | storageAt (Address _a) const |
| |
| LocalisedLogEntries | peekWatchSafe (unsigned _watchId) const |
| |
| LocalisedLogEntries | checkWatchSafe (unsigned _watchId) |
| |
| BlockHeader | blockInfo (BlockNumber _block) const |
| |
| BlockDetails | blockDetails (BlockNumber _block) const |
| |
| Transaction | transaction (BlockNumber _block, unsigned _i) const |
| |
| TransactionHashes | transactionHashes (BlockNumber _block) const |
| |
| BlockHeader | uncle (BlockNumber _block, unsigned _i) const |
| |
| UncleHashes | uncleHashes (BlockNumber _block) const |
| |
| unsigned | uncleCount (BlockNumber _block) const |
| |
| virtual Addresses | addresses () const |
| |
|
| void | init (p2p::Host &_extNet, boost::filesystem::path const &_dbPath, boost::filesystem::path const &_snapshotPath, WithExisting _forceAction, u256 _networkId) |
| |
| BlockChain & | bc () override |
| | InterfaceStub methods. More...
|
| |
| BlockChain const & | bc () const override |
| |
| Block | preSeal () const override |
| |
| Block | postSeal () const override |
| |
| void | prepareForTransaction () override |
| |
| void | appendFromNewPending (TransactionReceipt const &_receipt, h256Hash &io_changed, h256 _sha3) |
| |
| void | appendFromBlock (h256 const &_blockHash, BlockPolarity _polarity, h256Hash &io_changed) |
| |
| void | noteChanged (h256Hash const &_filters) |
| |
| virtual bool | submitSealed (bytes const &_s) |
| | Submit. More...
|
| |
| void | startedWorking () override |
| | Called when Worker is starting. More...
|
| |
| void | doWork (bool _doWait) |
| | Do some work. Handles blockchain maintenance and sealing. More...
|
| |
| void | doWork () override |
| | Called continuously following sleep for m_idleWaitMs. More...
|
| |
| void | doneWorking () override |
| | Called when Worker is exiting. More...
|
| |
| void | rejigSealing () |
| | Called when wouldSeal(), pendingTransactions() have changed. More...
|
| |
| void | onDeadBlocks (h256s const &_blocks, h256Hash &io_changed) |
| | Called on chain changes. More...
|
| |
| virtual void | onNewBlocks (h256s const &_blocks, h256Hash &io_changed) |
| | Called on chain changes. More...
|
| |
| void | resyncStateFromChain () |
| | Called after processing blocks by onChainChanged(_ir) More...
|
| |
| void | restartMining () |
| | Update m_preSeal, m_working, m_postSeal blocks from the latest state of the chain. More...
|
| |
| void | resetState () |
| | Clear working state of transactions. More...
|
| |
| void | onChainChanged (ImportRoute const &_ir) |
| |
| void | syncBlockQueue () |
| | Signal handler for when the block queue needs processing. More...
|
| |
| void | syncTransactionQueue () |
| | Signal handler for when the block queue needs processing. More...
|
| |
| void | onTransactionQueueReady () |
| | Magically called when m_tq needs syncing. Be nice and don't block. More...
|
| |
| void | onBlockQueueReady () |
| | Magically called when m_bq needs syncing. Be nice and don't block. More...
|
| |
| void | onPostStateChanged () |
| |
| void | checkWatchGarbage () |
| | Does garbage collection on watches. More...
|
| |
| void | tick () |
| | Ticks various system-level objects. More...
|
| |
| void | onBadBlock (Exception &_ex) const |
| |
| void | callQueuedFunctions () |
| | Executes the pending functions in m_functionQueue. More...
|
| |
| bool | shouldServeWork () const |
| | Is there an active and valid remote worker? More...
|
| |
| bool | remoteActive () const |
| |
| | Worker (std::string const &_name="anon", unsigned _idleWaitMs=30) |
| |
| | Worker (Worker &&_m) |
| | Move-constructor. More...
|
| |
| Worker & | operator= (Worker &&_m) |
| | Move-assignment. More...
|
| |
| virtual | ~Worker () |
| |
| void | setName (std::string _n) |
| | Allows changing worker name if work is stopped. More...
|
| |
| void | startWorking () |
| | Starts worker thread; causes startedWorking() to be called. More...
|
| |
| void | stopWorking () |
| | Stop worker thread; causes call to stopWorking(). More...
|
| |
| bool | isWorking () const |
| | Returns if worker thread is present. More...
|
| |
| virtual void | workLoop () |
| | Overrides doWork(); should call shouldStop() often and exit when true. More...
|
| |
| bool | shouldStop () const |
| |
| void | terminate () |
| | Blocks caller into worker thread has finished. More...
|
| |
|
| BlockChain | m_bc |
| | Maintains block database and owns the seal engine. More...
|
| |
| BlockQueue | m_bq |
| | Maintains a list of incoming blocks not yet on the blockchain (to be imported). More...
|
| |
| TransactionQueue | m_tq |
| | Maintains a list of incoming transactions not yet in a block on the blockchain. More...
|
| |
| std::shared_ptr< GasPricer > | m_gp |
| | The gas pricer. More...
|
| |
| OverlayDB | m_stateDB |
| | Acts as the central point for the state database, so multiple States can share it. More...
|
| |
| SharedMutex | x_preSeal |
| | Lock on m_preSeal. More...
|
| |
| Block | m_preSeal |
| | The present state of the client. More...
|
| |
| SharedMutex | x_postSeal |
| | Lock on m_postSeal. More...
|
| |
| Block | m_postSeal |
| | The state of the client which we're sealing (i.e. it'll have all the rewards added). More...
|
| |
| SharedMutex | x_working |
| | Lock on m_working. More...
|
| |
| Block | m_working |
| | The state of the client which we're sealing (i.e. it'll have all the rewards added), while we're actually working on it. More...
|
| |
| BlockHeader | m_sealingInfo |
| | The header we're attempting to seal on (derived from m_postSeal). More...
|
| |
| std::atomic< bool > | m_remoteWorking = { false } |
| | Has the remote worker recently been reset? More...
|
| |
| std::atomic< bool > | m_needStateReset = { false } |
| | Need reset working state to premin on next sync. More...
|
| |
| std::chrono::system_clock::time_point | m_lastGetWork |
| | Is there an active and valid remote worker? More...
|
| |
| std::weak_ptr< EthereumCapability > | m_host |
| |
| std::weak_ptr< WarpCapability > | m_warpHost |
| |
| std::condition_variable | m_signalled |
| |
| Mutex | x_signalled |
| |
| Handler | m_tqReady |
| |
| Handler< h256 const & > | m_tqReplaced |
| |
| Handler | m_bqReady |
| |
| std::atomic< bool > | m_wouldSeal = { false } |
| | True if we /should/ be sealing. More...
|
| |
| bool | m_wouldButShouldnot = false |
| | True if the last time we called rejigSealing wouldSeal() was true but sealer's shouldSeal() was false. More...
|
| |
| std::chrono::system_clock::time_point | m_lastGarbageCollection |
| | When did we last both doing GC on the watches? More...
|
| |
| std::chrono::system_clock::time_point | m_lastTick = std::chrono::system_clock::now() |
| | When did we last tick()? More...
|
| |
| unsigned | m_syncAmount = 50 |
| | Number of blocks to sync in each go. More...
|
| |
| ActivityReport | m_report |
| |
| SharedMutex | x_functionQueue |
| |
| std::queue< std::function< void()> > | m_functionQueue |
| | Functions waiting to be executed in the main thread. More...
|
| |
| std::atomic< bool > | m_syncTransactionQueue = {false} |
| |
| std::atomic< bool > | m_syncBlockQueue = {false} |
| |
| bytes | m_extraData |
| |
| Signal< bytes const & > | m_onBlockSealed |
| | Called if we have sealed a new block. More...
|
| |
| Signal< h256s const &, h256s const & > | m_onChainChanged |
| | Called when blockchain was changed. More...
|
| |
| Logger | m_logger {createLogger(VerbosityInfo, "client")} |
| |
| Logger | m_loggerDetail {createLogger(VerbosityDebug, "client")} |
| |
| Mutex | x_filtersWatches |
| | } More...
|
| |
| std::unordered_map< h256, InstalledFilter > | m_filters |
| | The dictionary of filters that are active. More...
|
| |
| std::unordered_map< h256, h256s > | m_specialFilters = std::unordered_map<h256, std::vector<h256>>{{PendingChangedFilter, {}}, {ChainChangedFilter, {}}} |
| | The dictionary of special filters and their additional data. More...
|
| |
| std::map< unsigned, ClientWatch > | m_watches |
| | Each and every watch - these reference a filter. More...
|
| |
| Logger | m_loggerWatch {createLogger(VerbosityDebug, "watch")} |
| |
| int | m_default = PendingBlock |
| |