有人可以帮助我吗?
我知道在Hyperledger锯齿中没有“编译”和“部署”这样的协议。我尝试使用金枪鱼链供应链,似乎$docker-composer up
的一条命令已完成了所有工作。那工作吗?
我的意思是说,如果我要在锯齿上建立自己的网络,并且已经编写了所有业务逻辑(即事务处理器),那么我需要制作什么docker文件,如何制作它们?
金枪鱼供应链代码可以在这里找到:https://github.com/hyperledger/education/tree/master/LFS171x/sawtooth-material
谢谢!
答案 0 :(得分:3)
锯齿状合约的类比称为交易处理器(TP)。锯齿可以作为可执行文件或解释代码部署到本机,也可以作为docker映像部署。 Docker compose文件允许建立一个可能/可能不会交互的docker映像网络。
有许多用于锯齿的语言开发套件。有关开发锯齿TP的信息,您应该通读并了解其架构,组件,API等:https://sawtooth.hyperledger.org/docs/core/releases/latest/
还有一个充满示例TP的github仓库:https://github.com/hyperledger/sawtooth-core
答案 1 :(得分:3)
正如弗兰克正确说的那样,Sawtooth提供了以任何语言编写智能合约的界面。您可以定义如何定义交易以及如何处理交易以更改区块链的状态。
这些智能合约将由交易处理器执行,这取决于交易系列。所有验证部分将由验证者处理。验证完成后,验证者会将特定交易族的合同转发给其交易处理器。
所有序列化都在Protobuf上完成,以节省空间并提高速度。
有一个很好的例子可以澄清您的概念。 https://github.com/askmish/sawtooth-simplewallet 为了理解上述仓库,您需要对事务系列,事务处理器,Apply方法有清楚的了解。
答案 2 :(得分:1)
该帖子很旧,但是,如果您发现了更好的解决方案,请分享,否则,这就是我发现的内容。
您需要运行交易处理器并将其连接到验证程序,才能提交交易。
实际上,将所有验证器放在同一台机器上是很少见的,在适用于Docker,Ubuntu和AWS的Hyperledger Sawtooth文档中的大多数示例中都是这种情况。在现实生活中,公司将在业务网络上运行自己的系统,并在其中使用几个验证程序,settings-tp,rest-api和自定义事务处理器来运行自己的系统。这些验证器将连接到业务网络上的其他验证器,这就是为什么建议仅将验证器的端口开放给世界的原因。
我希望可以有一种简单的方法来在运行的网络上注册自定义交易处理器,例如类似于azure或aws的cli,可以连接到任何锯齿验证器的本地锯齿cli,使用证书上载交易处理器以及该交易族将可用于将来的所有交易。