2

谁能帮我解决这个问题:我知道在超级账本锯齿中没有“编译”和“部署合同”。我尝试使用金枪鱼供应链,似乎一个命令$docker-composer up就可以完成所有工作。但是这到底是怎么工作的?我的意思是,如果我在锯齿波上制作自己的网络,并且我已经编写了所有业务逻辑(即事务处理器),我需要制作哪些 docker 文件,如何制作它们?

金枪鱼供应链代码可以在这里找到:https ://github.com/hyperledger/education/tree/master/LFS171x/sawtooth-material

谢谢!

4

3 回答 3

3

正如弗兰克所说的那样,Sawtooth 提供了用任何语言编写智能合约的接口。您可以定义如何定义交易以及如何处理它们以更改区块链的状态。

这些智能合约将由交易处理器执行,这取决于交易系列。所有验证部分都将由验证器处理,验证完成后,验证器会将特定交易系列的合约转发给他们的交易处理器。

所有的序列化都是在 Protobuf 上完成的,以节省空间并提高速度。

有一个很好的例子可以清除你的概念。 https://github.com/askmish/sawtooth-simplewallet 为了理解上面的 repo,你需要对 Transaction family、Transaction processor、Apply 方法有清楚的了解。

于 2018-08-18T11:23:34.840 回答
3

锯齿中的合约类比称为事务处理器(TP)。Sawtooth 可以作为可执行文件或解释代码部署到本机机器,或部署为 docker 映像。Docker compose 文件允许建立一个可能/可能不相互交互的 docker 图像网络。

有许多用于锯齿的语言开发工具包。有关开发锯齿 TP 的信息,您应该通读并了解架构、组件、API 等:https ://sawtooth.hyperledger.org/docs/core/releases/latest/

还有一个充满示例 TP 的 github 存储库:https ://github.com/hyperledger/sawtooth-core

于 2018-07-17T20:40:27.230 回答
1

该帖子很旧,但是如果您发现了更好的解决方案,请分享,否则这就是我发现的。

您需要运行交易处理器并将其连接到验证器以提交您的交易。

实际上,将所有验证器都放在同一台机器上的情况很少见,在 Docker、Ubuntu 和 AWS 的 Hyperledger Sawtooth 文档中提供的大多数示例中都是这种情况。在现实生活场景中,在业务网络中,公司将在自己的网络中运行自己的系统,其中包含几个验证器、settings-tp、rest-api 和自定义交易处理器。这些验证器将连接到业务网络上的其他验证器,这就是为什么只建议向世界开放验证器端口的原因。

我希望有一种简单的方法可以在正在运行的网络上注册自定义事务处理器,例如类似于 azure 或 aws 的 cli,可以连接到任何锯齿验证器的原生锯齿 cli,使用证书和该事务系列上传事务处理器可用于所有未来的交易。

于 2018-12-23T21:33:49.523 回答