Documentation ¶
Index ¶
- Constants
- Variables
- func HomeDirFromEnvironment() string
- func TLSConfig(certFile, keyFile, rootCAs string) (*tls.Config, error)
- type BlockRequestMessage
- type BlockResponseMessage
- type BlockchainMessage
- type BlockchainReactor
- func (bcr *BlockchainReactor) AddPeer(peer *p2p.Peer)
- func (bcr *BlockchainReactor) BroadcastStatusResponse()
- func (bcr *BlockchainReactor) BroadcastTransaction(tx *protocolTypes.Tx) error
- func (bcr *BlockchainReactor) GetChannels() []*p2p.ChannelDescriptor
- func (bcr *BlockchainReactor) GetNodeInfo() *NetInfo
- func (bcr *BlockchainReactor) GetTxFeedByAlias(ctx context.Context, filter string) ([]byte, error)
- func (bcr *BlockchainReactor) GetWork() (*GetWorkResp, error)
- func (bcr *BlockchainReactor) Info(ctx context.Context) (map[string]interface{}, error)
- func (bcr *BlockchainReactor) IsMining() bool
- func (bcr *BlockchainReactor) OnStart() error
- func (bcr *BlockchainReactor) OnStop()
- func (bcr *BlockchainReactor) Receive(chID byte, src *p2p.Peer, msgBytes []byte)
- func (bcr *BlockchainReactor) RemovePeer(peer *p2p.Peer, reason interface{})
- func (bcr *BlockchainReactor) SubmitWork(bh *types.BlockHeader) bool
- type GetWorkResp
- type NetInfo
- type StatusRequestMessage
- type StatusResponseMessage
- type TransactionNotifyMessage
Constants ¶
const ( // BlockRequestByte means block request message BlockRequestByte = byte(0x10) // BlockResponseByte means block response message BlockResponseByte = byte(0x11) // StatusRequestByte means status request message StatusRequestByte = byte(0x20) // StatusResponseByte means status response message StatusResponseByte = byte(0x21) // NewTransactionByte means transaction notify message NewTransactionByte = byte(0x30) )
const ( // BlockchainChannel is a channel for blocks and status updates BlockchainChannel = byte(0x40) )
Variables ¶
var ErrNoTLS = errors.New("no TLS configuration available")
ErrNoTLS means that no TLS configuration available
Functions ¶
func HomeDirFromEnvironment ¶
func HomeDirFromEnvironment() string
HomeDirFromEnvironment returns the directory to use for reading config and storing variable data. It returns $BYTOM_HOME, or, if that is empty, $HOME/.chaincore.
func TLSConfig ¶
TLSConfig returns a TLS config suitable for use as a bytom client and server. It reads a PEM-encoded X.509 certificate and private key from certFile and keyFile. If rootCAs is given, it should name a file containing a list of trusted root CA certs, otherwise the returned config uses the system cert pool.
For compatibility, it attempts to read the cert and key from the environment if certFile and keyFile both do not exist in the filesystem.
TLSCRT=[PEM-encoded X.509 certificate] TLSKEY=[PEM-encoded X.509 private key]
If certFile and keyFile do not exist or are empty and the environment vars are both unset, TLSConfig returns ErrNoTLS.
Types ¶
type BlockRequestMessage ¶ added in v0.1.4
BlockRequestMessage is block request message struct
func (*BlockRequestMessage) GetHash ¶ added in v0.1.4
func (m *BlockRequestMessage) GetHash() *bc.Hash
GetHash return block hash
func (*BlockRequestMessage) String ¶ added in v0.1.4
func (m *BlockRequestMessage) String() string
type BlockResponseMessage ¶ added in v0.1.4
type BlockResponseMessage struct {
RawBlock []byte
}
BlockResponseMessage is block response message struct
func NewBlockResponseMessage ¶ added in v0.1.4
func NewBlockResponseMessage(block *types.Block) (*BlockResponseMessage, error)
NewBlockResponseMessage produce new BlockResponseMessage instance
func (*BlockResponseMessage) GetBlock ¶ added in v0.1.4
func (m *BlockResponseMessage) GetBlock() *types.Block
GetBlock return block struct
func (*BlockResponseMessage) String ¶ added in v0.1.4
func (m *BlockResponseMessage) String() string
type BlockchainMessage ¶
type BlockchainMessage interface{}
BlockchainMessage is a generic message for this reactor.
func DecodeMessage ¶
func DecodeMessage(bz []byte) (msgType byte, msg BlockchainMessage, err error)
DecodeMessage decode receive messages
type BlockchainReactor ¶
type BlockchainReactor struct { p2p.BaseReactor TxFeedTracker *txfeed.Tracker // TODO: move it out from BlockchainReactor // contains filtered or unexported fields }
BlockchainReactor handles long-term catchup syncing.
func NewBlockchainReactor ¶
func NewBlockchainReactor(chain *protocol.Chain, txPool *protocol.TxPool, sw *p2p.Switch, wallet *wallet.Wallet, txfeeds *txfeed.Tracker, miningEnable bool) *BlockchainReactor
NewBlockchainReactor returns the reactor of whole blockchain.
func (*BlockchainReactor) AddPeer ¶
func (bcr *BlockchainReactor) AddPeer(peer *p2p.Peer)
AddPeer implements Reactor by sending our state to peer.
func (*BlockchainReactor) BroadcastStatusResponse ¶ added in v0.1.4
func (bcr *BlockchainReactor) BroadcastStatusResponse()
BroadcastStatusResponse broadcasts `BlockStore` height.
func (*BlockchainReactor) BroadcastTransaction ¶
func (bcr *BlockchainReactor) BroadcastTransaction(tx *protocolTypes.Tx) error
BroadcastTransaction broadcats `BlockStore` transaction.
func (*BlockchainReactor) GetChannels ¶
func (bcr *BlockchainReactor) GetChannels() []*p2p.ChannelDescriptor
GetChannels implements Reactor
func (*BlockchainReactor) GetNodeInfo ¶ added in v0.4.1
func (bcr *BlockchainReactor) GetNodeInfo() *NetInfo
func (*BlockchainReactor) GetTxFeedByAlias ¶ added in v0.4.1
func (*BlockchainReactor) GetWork ¶ added in v0.4.1
func (bcr *BlockchainReactor) GetWork() (*GetWorkResp, error)
func (*BlockchainReactor) Info ¶ added in v0.4.1
func (bcr *BlockchainReactor) Info(ctx context.Context) (map[string]interface{}, error)
Info return the server information
func (*BlockchainReactor) IsMining ¶ added in v0.4.1
func (bcr *BlockchainReactor) IsMining() bool
func (*BlockchainReactor) OnStart ¶
func (bcr *BlockchainReactor) OnStart() error
OnStart implements BaseService
func (*BlockchainReactor) OnStop ¶
func (bcr *BlockchainReactor) OnStop()
OnStop implements BaseService
func (*BlockchainReactor) Receive ¶
func (bcr *BlockchainReactor) Receive(chID byte, src *p2p.Peer, msgBytes []byte)
Receive implements Reactor by handling 4 types of messages (look below).
func (*BlockchainReactor) RemovePeer ¶
func (bcr *BlockchainReactor) RemovePeer(peer *p2p.Peer, reason interface{})
RemovePeer implements Reactor by removing peer from the pool.
func (*BlockchainReactor) SubmitWork ¶ added in v0.4.1
func (bcr *BlockchainReactor) SubmitWork(bh *types.BlockHeader) bool
type GetWorkResp ¶ added in v0.4.1
type GetWorkResp struct { BlockHeader *types.BlockHeader `json:"block_header"` Seed *bc.Hash `json:"seed"` }
GetWorkResp is resp struct for API
type StatusRequestMessage ¶ added in v0.1.4
type StatusRequestMessage struct{}
StatusRequestMessage is status request message struct
func (*StatusRequestMessage) String ¶ added in v0.1.4
func (m *StatusRequestMessage) String() string
type StatusResponseMessage ¶ added in v0.1.4
StatusResponseMessage is status response message struct
func NewStatusResponseMessage ¶ added in v0.1.4
func NewStatusResponseMessage(block *types.Block) *StatusResponseMessage
NewStatusResponseMessage produce new StatusResponseMessage instance
func (*StatusResponseMessage) GetHash ¶ added in v0.1.4
func (m *StatusResponseMessage) GetHash() *bc.Hash
GetHash return hash pointer
func (*StatusResponseMessage) String ¶ added in v0.1.4
func (m *StatusResponseMessage) String() string
type TransactionNotifyMessage ¶ added in v0.1.4
type TransactionNotifyMessage struct {
RawTx []byte
}
TransactionNotifyMessage is transaction notify message struct
func NewTransactionNotifyMessage ¶ added in v0.1.4
func NewTransactionNotifyMessage(tx *types.Tx) (*TransactionNotifyMessage, error)
NewTransactionNotifyMessage produce new TransactionNotifyMessage instance
func (*TransactionNotifyMessage) GetTransaction ¶ added in v0.1.4
func (m *TransactionNotifyMessage) GetTransaction() *types.Tx
GetTransaction return Tx struct
func (*TransactionNotifyMessage) String ¶ added in v0.1.4
func (m *TransactionNotifyMessage) String() string
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package pseudohsm provides a pseudo HSM for development environments.
|
Package pseudohsm provides a pseudo HSM for development environments. |
Package signers associates signers and their corresponding keys.
|
Package signers associates signers and their corresponding keys. |
Package txbuilder builds a Chain Protocol transaction from a list of actions.
|
Package txbuilder builds a Chain Protocol transaction from a list of actions. |