Documentation ¶
Overview ¶
套餐共识实现不同的以太坊共识引擎。
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( //当验证块需要祖先时返回errUnknownancestor //这是未知的。 ErrUnknownAncestor = errors.New("unknown ancestor") //验证块需要祖先时返回errprunedancestor //这是已知的,但其状态不可用。 ErrPrunedAncestor = errors.New("pruned ancestor") //当块的时间戳在将来时,根据 //到当前节点。 ErrFutureBlock = errors.New("block in the future") //如果块的编号不等于其父块的编号,则返回errInvalidNumber。 //加一。 ErrInvalidNumber = errors.New("invalid block number") )
Functions ¶
This section is empty.
Types ¶
type ChainReader ¶
type ChainReader interface { //config检索区块链的链配置。 Config() *params.ChainConfig //当前头从本地链中检索当前头。 CurrentHeader() *types.Header //GetHeader按哈希和数字从数据库中检索块头。 GetHeader(hash common.Hash, number uint64) *types.Header //GetHeaderByNumber按编号从数据库中检索块头。 GetHeaderByNumber(number uint64) *types.Header //GetHeaderByHash通过其哈希从数据库中检索块头。 GetHeaderByHash(hash common.Hash) *types.Header //GetBlock按哈希和数字从数据库中检索块。 GetBlock(hash common.Hash, number uint64) *types.Block }
ChainReader定义访问本地
type Engine ¶
type Engine interface { //作者检索创建给定帐户的以太坊地址 //块,如果达成一致,则可能不同于标题的coinbase //引擎基于签名。 Author(header *types.Header) (common.Address, error) //验证标题检查标题是否符合 //给定发动机。可在此处选择或明确地验证密封件。 //通过VerifySeal方法。 //verifyheader(链式读卡器,header*types.header,seal bool)错误 VerifyHeader(chain ChainReader, header *types.Header, seal bool, interval uint64) error //VerifyHeaders类似于VerifyHeader,但会验证一批头 //同时地。该方法返回退出通道以中止操作,并且 //用于检索异步验证的结果通道(顺序为 //输入切片)。 //verifyheaders(chain chainreader,headers[]*types.header,seals[]bool,blockinterval uint64)(chan<-struct,<-chan error) VerifyHeaders(chain ChainReader, headers []*types.Header, seals []bool) (chan<- struct{}, <-chan error) //验证叔父验证给定区块的叔父是否符合共识 //给定引擎的规则。 VerifyUncles(chain ChainReader, block *types.Block) error //根据 //给定引擎的共识规则。 //verifyseal(链条阅读器,header*types.header)错误 VerifySeal(chain ChainReader, header *types.Header, genesisheader *types.Header) error //Prepare根据 //特定引擎的规则。更改是以内联方式执行的。 Prepare(chain ChainReader, header *types.Header) error //Finalize运行任何交易后状态修改(例如块奖励) //组装最后一块。 //注意:块头和状态数据库可能会更新以反映 //在最终确定时达成共识的规则(例如集体奖励)。 Finalize(chain ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt, dposContext *types.DposContext) (*types.Block, error) //Seal使用本地矿工的 //密封顶部。 Seal(chain ChainReader, block *types.Block, stop <-chan struct{}) (*types.Block, error) //计算难度是难度调整算法。它又回到了困难中 //一个新的街区应该有。 CalcDifficulty(chain ChainReader, time uint64, parent *types.Header) *big.Int //API返回此共识引擎提供的RPC API。 APIs(chain ChainReader) []rpc.API //CLOSE终止由共识引擎维护的任何后台线程。 Close() error }
引擎是一个算法不可知的共识引擎。
Directories ¶
Path | Synopsis |
---|---|
包裹集团实施权威证明共识引擎。
|
包裹集团实施权威证明共识引擎。 |
此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
|
此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 此源码被清华学神尹成大魔王专业翻译分析并修改 尹成QQ77025077 尹成微信18510341407 尹成所在QQ群721929980 尹成邮箱 yinc13@mails.tsinghua.edu.cn 尹成毕业于清华大学,微软区块链领域全球最有价值专家 https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 |
Click to show internal directories.
Click to hide internal directories.