前面几节都在分析以太坊的通信协议,怎么广播,怎么同步,怎么下载。这一节讲讲以太坊的核心模块BlockChain,也就是以太坊的区块链。
一,BlockChain的初始化
Ethereum服务初始化func init() 的时候会调用core.SetupGenesisBlock来加载创始区块。顾名思义,创始区块就是以太坊区块链中的第一个区块,number值为0。紧接着调用文章来源:https://www.toymoban.com/news/detail-473812.html
stack, backend := makeFullNode(ctx) utils.RegisterEthService(stack, &cfg.Eth)
backend, err := eth.New(stack, cfg)
eth.blockchain, err = core.NewBlockChain(chainDb, cacheConfig, config.Genesis, &overrides, eth.engine, vmConfig, eth.shouldPreserve, &config.TxLookupLimit)
来加载以太坊的区块链。文章来源地址https://www.toymoban.com/news/detail-473812.html
// NewBlockChain returns a fully initialised block chain using information
// available in the database. It initialises the default Ethereum Validator
// and Processor. NewBlockChain使用数据库中可用的信息返回完全初始化的区块链。它初始化默认的以太坊验证器和处理器。
func NewBlockChain(db ethdb.Database, cacheConfig *CacheConfig, genesis *Genesis, overrides *ChainOverrides, engine consensus.Engine,
到了这里,关于【区块链 | 智能合约】Ethereum源代码(11)- 以太坊核心BlockChain源码分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!