hiservice

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2020 License: GPL-3.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateDB

func CreateDB(ctx *node.ServiceContext, config *Config, name string) (fdb.Database, error)

CreateDB creates the chain database.

Types

type APIBackend

type APIBackend struct {
	// contains filtered or unexported fields
}

APIBackend implements hiservice api.Backend for full nodes

func (*APIBackend) APIs

func (b *APIBackend) APIs() []rpc.API

APIs returns apis

func (*APIBackend) AddBadNode

func (b *APIBackend) AddBadNode(url string) error

AddBadNode add a bad Node and would cause the node disconnected

func (*APIBackend) AddPeer

func (b *APIBackend) AddPeer(url string) error

AddPeer add a P2P peer

func (*APIBackend) AddTrustedPeer

func (b *APIBackend) AddTrustedPeer(url string) error

AddTrustedPeer allows a remote node to always connect, even if slots are full

func (*APIBackend) BadNodes

func (b *APIBackend) BadNodes() []string

BadNodes returns all bad nodes.

func (*APIBackend) BadNodesCount

func (b *APIBackend) BadNodesCount() int

BadNodesCount returns the number of bad nodes.

func (*APIBackend) BlockByNumber

func (b *APIBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumber) *types.Block

func (*APIBackend) ChainConfig

func (b *APIBackend) ChainConfig() *params.ChainConfig

ChainConfig returns the active chain configuration.

func (*APIBackend) ChainDb

func (b *APIBackend) ChainDb() fdb.Database

func (*APIBackend) CurrentBlock

func (b *APIBackend) CurrentBlock() *types.Block

func (*APIBackend) Engine

func (b *APIBackend) Engine() consensus.IEngine

func (*APIBackend) ForkStatus

func (b *APIBackend) ForkStatus(statedb *state.StateDB) (*blockchain.ForkConfig, blockchain.ForkInfo, error)

func (*APIBackend) GetAccountManager

func (b *APIBackend) GetAccountManager() (*accountmanager.AccountManager, error)

func (*APIBackend) GetBadBlocks

func (b *APIBackend) GetBadBlocks(ctx context.Context) ([]*types.Block, error)

func (*APIBackend) GetBlock

func (b *APIBackend) GetBlock(ctx context.Context, hash common.Hash) (*types.Block, error)

func (*APIBackend) GetBlockDetailLog

func (b *APIBackend) GetBlockDetailLog(ctx context.Context, blockNr rpc.BlockNumber) *types.BlockAndResult

func (*APIBackend) GetDetailTxByFilter

func (b *APIBackend) GetDetailTxByFilter(ctx context.Context, filterFn func(common.Name) bool, blockNr, lookbackNum uint64) []*types.DetailTx

func (*APIBackend) GetDetailTxsLog

func (b *APIBackend) GetDetailTxsLog(ctx context.Context, hash common.Hash) ([]*types.DetailTx, error)

func (*APIBackend) GetEVM

func (b *APIBackend) GetEVM(ctx context.Context, account *accountmanager.AccountManager, state *state.StateDB, from common.Name, to common.Name, assetID uint64, gasPrice *big.Int, header *types.Header, vmCfg vm.Config) (*vm.EVM, func() error, error)

func (*APIBackend) GetFeeManager

func (b *APIBackend) GetFeeManager() (*feemanager.FeeManager, error)

GetFeeManager get fee manager

func (*APIBackend) GetFeeManagerByTime

func (b *APIBackend) GetFeeManagerByTime(time uint64) (*feemanager.FeeManager, error)

GetFeeManagerByTime get fee manager

func (*APIBackend) GetLogs

func (b *APIBackend) GetLogs(ctx context.Context, hash common.Hash) ([][]*types.Log, error)

func (*APIBackend) GetReceipts

func (b *APIBackend) GetReceipts(ctx context.Context, hash common.Hash) ([]*types.Receipt, error)

func (*APIBackend) GetTd

func (b *APIBackend) GetTd(blockHash common.Hash) *big.Int

func (*APIBackend) GetTxsByFilter

func (b *APIBackend) GetTxsByFilter(ctx context.Context, filterFn func(common.Name) bool, blockNr, lookforwardNum uint64) *types.AccountTxs

func (*APIBackend) HeaderByHash

func (b *APIBackend) HeaderByHash(ctx context.Context, hash common.Hash) *types.Header

func (*APIBackend) HeaderByNumber

func (b *APIBackend) HeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) *types.Header

func (*APIBackend) PeerCount

func (b *APIBackend) PeerCount() int

PeerCount returns the number of connected peers.

func (*APIBackend) Peers

func (b *APIBackend) Peers() []string

Peers returns all connected peers.

func (*APIBackend) RemoveBadNode

func (b *APIBackend) RemoveBadNode(url string) error

RemoveBadNode add a bad Node and would cause the node disconnected

func (*APIBackend) RemovePeer

func (b *APIBackend) RemovePeer(url string) error

RemovePeer remove a P2P peer

func (*APIBackend) RemoveTrustedPeer

func (b *APIBackend) RemoveTrustedPeer(url string) error

RemoveTrustedPeer removes a remote node from the trusted peer set, but it does not disconnect it automatically.

func (*APIBackend) SeedNodes

func (b *APIBackend) SeedNodes() []string

SeedNodes returns all seed nodes.

func (*APIBackend) SelfNode

func (b *APIBackend) SelfNode() string

SelfNode returns the local node's endpoint information.

func (*APIBackend) SendTx

func (b *APIBackend) SendTx(ctx context.Context, signedTx *types.Transaction) error

func (*APIBackend) SetGasPrice

func (b *APIBackend) SetGasPrice(gasPrice *big.Int) bool

func (*APIBackend) SetStatePruning

func (b *APIBackend) SetStatePruning(enable bool) (bool, uint64)

SetStatePruning set state pruning

func (*APIBackend) StateAndHeaderByNumber

func (b *APIBackend) StateAndHeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*state.StateDB, *types.Header, error)

func (*APIBackend) SuggestPrice

func (b *APIBackend) SuggestPrice(ctx context.Context) (*big.Int, error)

func (*APIBackend) TxPool

func (b *APIBackend) TxPool() *txpool.TxPool

type Config

type Config struct {
	// The genesis block, which is inserted if the database is empty.
	// If nil, the main net block is used.
	Genesis *blockchain.Genesis `toml:",omitempty"`

	// Database options
	DatabaseHandles int
	DatabaseCache   int `mapstructure:"databasecache"`

	// Transaction pool options
	TxPool *txpool.Config `mapstructure:"txpool"`

	// Gas Price Oracle options
	GasPrice gasprice.Config `mapstructure:"gpo"`

	// miner
	Miner *MinerConfig `mapstructure:"miner"`

	MetricsConf *metrics.Config `mapstructure:"metrics"`

	StatePruning    bool `mapstructure:"statepruning"`
	ContractLogFlag bool `mapstructure:"contractlog"`

	BadHashes   []string `mapstructure:"badhashes"`
	StartNumber uint64   `mapstructure:"startnumber"`
}

Config hiservice config

type HiService

type HiService struct {
	APIBackend *APIBackend
	// contains filtered or unexported fields
}

HiService implements the hichain service.

func New

func New(ctx *node.ServiceContext, config *Config) (*HiService, error)

New creates a new hiservice object (including the initialisation of the common hiservice object)

func (*HiService) APIs

func (fs *HiService) APIs() []rpc.API

APIs return the collection of RPC services the hiservice package offers.

func (*HiService) BlockChain

func (s *HiService) BlockChain() *blockchain.BlockChain

func (*HiService) ChainDb

func (s *HiService) ChainDb() fdb.Database

func (*HiService) Engine

func (s *HiService) Engine() consensus.IEngine

func (*HiService) GasPrice

func (fs *HiService) GasPrice() *big.Int

func (*HiService) Protocols

func (s *HiService) Protocols() []p2p.Protocol

func (*HiService) SetGasPrice

func (fs *HiService) SetGasPrice(gasPrice *big.Int) bool

func (*HiService) Start

func (fs *HiService) Start() error

Start implements node.Service, starting all internal goroutines.

func (*HiService) Stop

func (fs *HiService) Stop() error

Stop implements node.Service, terminating all internal goroutine

func (*HiService) TxPool

func (s *HiService) TxPool() *txpool.TxPool

type MinerConfig

type MinerConfig struct {
	Start       bool     `mapstructure:"start"`
	Delay       uint64   `mapstructure:"delay"`
	Name        string   `mapstructure:"name"`
	PrivateKeys []string `mapstructure:"private"`
	ExtraData   string   `mapstructure:"extra"`
}

MinerConfig miner config

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL