【问题标题】:Tendermint: what is a good architecture to implement application with tendermint?Tendermint:用tendermint 实现应用程序的良好架构是什么?
【发布时间】:2021-03-16 04:25:33
【问题描述】:

在 Tendermint 上实现应用程序的良好架构是什么? 我担心这三个部分。

  1. 要实现智能联系人等业务逻辑,我们可以在任何语言上实现。
  2. 智能联系人和tendermint核心之间的接口。 2.1 向 Tendermint 提交交易,我们总是调用“broadcast_tx_commit”吗?如果我们使用这个接口,我们如何提交JSON格式的数据呢? 2.2 查询数据,通过api abci_query查询和直接从数据库查询哪个更好。
  3. 数据库部分-对于招标,他们有 2 个数据库,分别是 clevel 存储块和 badger 存储数据(smartcontact 阶段)。如果我想用 MongoDB 或 mysql 等其他数据库替换 badger,这是一个好的设计还是我们有合适的数据库?

【问题讨论】:

    标签: blockchain tendermint


    【解决方案1】:

    要实现智能联系人等业务逻辑,我们可以在任何语言上实现。

    如果您希望使用 Tendermint 实施智能合约,请查看 https://www.cosmwasm.com/https://github.com/datachainlab/hyperminthttps://github.com/ndidplatform/smart-contract。他们都使用 WASM https://en.wikipedia.org/wiki/WebAssembly

    要向 Tendermint 提交交易,我们是否总是调用“broadcast_tx_commit”?如果我们使用这个接口,我们如何提交JSON格式的数据呢? 2.2 查询数据,通过api abci_query查询和直接从数据库查询哪个更好。

    /broadcast_tx_commit 应在测试期间使用。在生产中,使用/broadcast_tx_sync/broadcast_tx_async https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync

    要查询数据,请使用 /abci_query,它将代理调用您的 ABCI 应用程序 https://docs.tendermint.com/master/spec/abci/abci.html#query

    对于 JSON,Tendermint 与交易内容无关,并将其视为原始字节,因此您可以使用任何您想要的格式。如果是 JSON,客户端可以使用任何 JSON 编组器(例如 https://golang.org/pkg/encoding/json/)对事务进行编码。在您的 ABCI 应用程序 CheckTx/DeliverTx 方法中,您需要解码交易。

    数据库部分-对于招标,他们有 2 个数据库,分别是 clevel 存储块和 badger 存储数据(smartcontact 阶段)。如果我想用 MongoDB 或 mysql 等其他数据库替换 badger,这是一个好的设计还是我们有合适的数据库?

    在哪里存储应用程序状态由您决定。这取决于所需的数据库属性(是否嵌入、ACID、容错、无模式等)。

    【讨论】:

      猜你喜欢
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2015-11-19
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      相关资源
      最近更新 更多