建议和反馈

请填写你的反馈内容

感谢您对链客的信任!

恭喜您填写完个人简历!链客专注于区块链职位连接,帮助您的投递更加精准高效,赶快去选择自己心仪的岗位吧!

推动中国区块链事业发展始终是我们坚定不移的梦——链客团队

求助中

Endorser节点做了什么? 模拟交易需要签名吗?几方来签名确认交易?

在Fabric网络组成中,提交一个提案后:

Endorser节点做了什么? 模拟交易需要签名吗?几方来签名确认交易?


云志

2019-03-15

534

0

撰写答案

请先登陆或注册

1个回答

爵士

2019-03-15

endorser 收到请求后进行如下操作:

  1. 验证clientSig

  2. 如果指定了anchor则先检查 version

  3. 模拟交易,获取readsetwriteset

  4. 生成tran-proposal发往背书模块(endorsing logic
    默认直接接受并进行签名,但是也可以进行任意操作,将tran-proposal和tx作为输入发往相关系统获得判定是否要进行背书。背书逻辑调用的是系统默认的合约 ESCC,当然也可以自己编写背书合约,但是这始终是一个同步调用操作,不用也不能由人工介入。

  5. 如果决定背书,则向提交请求的 client 发送:
    <TRANSACTION-ENDORSED, tid, tran-proposal,epSig>,这个大概就是endorsement吧?
    tran-proposal := (epID,tid,chaincodeID,txContentBlob,readset,writeset)txContentBlob是与链码/交易有关系的信息(例如:txContentBlob=tx.txPayload

epSig是 endorser 对tran-proposal的签名

  1. 如果背书失败,则发送(TRANSACTION-INVALID, tid, REJECTED)


0
赞赏(0)
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励