您现在的位置是:首页 > 文章详情

区块链教程Fabric1.0源代码分析configtx#genesis-兄弟连

日期:2018-10-29点击:336

区块链教程Fabric1.0源代码分析configtx#genesis,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。

Fabric 1.0源代码笔记 之 configtx(配置交易) #genesis(系统通道创世区块)

1、genesis概述

genesis,即创世区块,此处特指系统通道的创世区块。
相关代码在common/genesis/genesis.go,即Factory接口及实现。

2、Factory接口定义

type Factory interface {     Block(channelID string) (*cb.Block, error) } //代码在common/genesis/genesis.go

3、Factory接口实现

msgVersion = int32(1) epoch = 0 type factory struct {     template configtx.Template } func NewFactoryImpl(template configtx.Template) Factory {     return &factory{template: template} } func (f *factory) Block(channelID string) (*cb.Block, error) {     configEnv, err := f.template.Envelope(channelID)     configUpdate := &cb.ConfigUpdate{}     err = proto.Unmarshal(configEnv.ConfigUpdate, configUpdate)     payloadChannelHeader := utils.MakeChannelHeader(cb.HeaderType_CONFIG, msgVersion, channelID, epoch)     payloadSignatureHeader := utils.MakeSignatureHeader(nil, utils.CreateNonceOrPanic())     utils.SetTxID(payloadChannelHeader, payloadSignatureHeader)     payloadHeader := utils.MakePayloadHeader(payloadChannelHeader, payloadSignatureHeader)     payload := &cb.Payload{Header: payloadHeader, Data: utils.MarshalOrPanic(&cb.ConfigEnvelope{Config: &cb.Config{ChannelGroup: configUpdate.WriteSet}})}     envelope := &cb.Envelope{Payload: utils.MarshalOrPanic(payload), Signature: nil}     block := cb.NewBlock(0, nil)     block.Data = &cb.BlockData{Data: [][]byte{utils.MarshalOrPanic(envelope)}}     block.Header.DataHash = block.Data.Hash()     block.Metadata.Metadata[cb.BlockMetadataIndex_LAST_CONFIG] = utils.MarshalOrPanic(&cb.Metadata{         Value: utils.MarshalOrPanic(&cb.LastConfig{Index: 0}),     })     return block, nil } //代码在common/genesis/genesis.go
原文链接:https://yq.aliyun.com/articles/659774
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章