我想检查从调用智能契约到创建块之前的gRPC消息流:
我确实想检查这些步骤(使用的消息流),我后来发现这些步骤组成了一个完整的块(如果我理解它是对的,那么这些部分只会在块的末尾被组合在一起,一些人补充道):
调用链码的调用,例如在使用CLI:时将值"a“更改为"10”
1. CLI sends Proposal to Endorser -> [SignedProposal with Signature, Proposal:(Header+Payload)]
2. Endorser sends Proposal Response back to CLI -> [ProposalResponse with its Endorsement,
PropRespPayload]
3. CLI packs endorsements into Transaction + sends them to orderer for block creation
4. Block is created by orderer + validation of sign.取它们最快的方法是什么?
我所做的:
我的问题是,我能够构建和修改二进制文件,比如对等可执行文件(它在图像中使用,并在码头容器中启动,就像对等程序一样),但是我最终想要使用它们,使我们成为像first-network这样的示例项目,在这里我可以调用一个事务并用自己的实现来记录gRPCed在哪里。我在这里可以做的,也是非常耗时的是重建所有图像,然后使所有示例文件适合新的环境,并实现这些部分,但我认为必须有一种更快的方法来评估消息流(使用完整的gRPC消息流/decoded的输出并编码)。
你对我有什么建议么?您想继续使用Way1还是Way2?还是我用一种太复杂的方法来解决这个问题?
有更快的方法存在吗?我的意思是,我需要解除封送的部分,但也需要一些对象的封送内容,并且我有proto文件(当这些是我在wireshark中调用时所做的日志记录部分的正确文件时)。
发布于 2020-06-16 01:34:55
您可以通过以下简单步骤创建自己的gRPC api:
发布于 2020-06-15 15:00:00
这似乎与一个多月前你发的问题密切相关。
正如您所指出的,如果您希望执行诸如验证签名之类的操作,您将需要消息的封送形式,但是如果您希望检查这些消息,则需要解除它们的封送。
我认为选项1(修改代码以转储所需的信息)仍然是最有用的。因为您可以在代码本身内执行任何序列化、持久性或分析。如果您只是通过类似于线鲨之类的东西将这些数据结构存储到磁盘中,那么您将需要跟踪它们,解析它们,等等,这对我来说似乎是更多的工作。
如果您已经在磁盘上封送消息,您可以尝试使用像configtxlator这样的工具将消息解封为更友好的JSON格式,如果您已经跟踪了适当的类型,尽管这似乎比简单地向我注入代码更困难。
https://stackoverflow.com/questions/62370166
复制相似问题