gate.io平台
gate.io平台
Coinbase开发的Rosetta API是一个开放标准,旨在简化区块链的部署和交互。罗塞塔API规范提供了一个通用接口,可以与不同类型的区块链互连。由于每个区块链在交易签名、请求生成、余额查询等方面都有自己独立的运行机制,因此需要不断开发和维护钱包、硬币库等交易所,以满足与这些机制交互的需要。
宇宙的罗塞塔应用编程接口支持旨在使区块链建设者能够遵循或制定符合Coinbase规范的协议。
为什么使用Rosetta API更方便?
Rosetta是目前唯一一个跨区块链应用交互支持的规范——,Coinbase是世界上最大的加密货币交易所之一。Coinbase的钱包和交易集成已逐渐成为区块链基础设施的标准。在Cosmos SDK架构中,只需添加一行代码就可以成功集成Rosetta API。
将罗塞塔应用编程接口集成到宇宙SDK区块链应用程序中有助于在交易所对货币进行加密。钱包和其他基于Rosetta API与链交互的服务也将从这种集成中受益。如果你在其他区块链使用过Rosetta API,可以实现其与Cosmos生态应用的融合。
如何将Rosetta API集成到Cosmos中?
将Rosetta API集成到Cosmos SDK中带来了一些有趣的挑战。最特殊的挑战是,根据接口规范,罗塞塔应用编程接口规范期望设计和实现像UTXO(未付交易结果)区块链一样工作。在基于UTXO的区块链中,每个块的事务包括一组输入(接收的通行证)和输出(花费的通行证)。这样,在给定高度X查询账户的结果是其地址输入和输出的总和,这是通过查询从块0到块X生成的所有交易输入和输出而获得的.
对于基于宇宙SDK的区块链,其状态变化不仅发生在事务级,还会发生在初始阻塞和结束阻塞阶段。受这种差异的影响,仅通过查询账户和计算已用通票是不可能获得真实余额和供应变化的完整记录的。在宇宙SDK生态系统中,用户可以通过质押获得奖励。此外,委托等行为可以增加查询余额和供应的方式。
为了集成Rosetta API,我们调整了Cosmos SDK代码,这样每次账户余额发生变化,都会触发事件,包括模块的触发,DeliverTx,BeginBlock,EndBlock。
第二个挑战是使罗塞塔应用编程接口支持所有区块链应用及其支持的信息。支持转账、委托等一般操作是不够的。我们希望能够通过Rosetta API实现Cosmos SDK区块链所有应用的查询和转移的完整记录。
现在我们知道如何克服这些有趣的挑战,让我们看看如何将罗塞塔应用编程接口集成到宇宙SDK区块链应用程序中。
Rosetta API集成操作方法
我们已经将Cosmos SDK升级到了与Rosetta API匹配的版本,所以我们只需要更新应用程序根命令文件。
要在应用程序命令行上运行Rosetta,请使用以下代码:
appd rosetta -帮助
要在运行和发布的应用程序中测试和运行Rosetta API终端,请使用以下代码:
目前登陆Cosmos SDK的Rosetta API一次只能支持一个链。一如既往,我们将继续在Cosmos SDK中开发新功能并增强现有功能。在未来版本中,客户端将实时显示构建编解码器和接口注册表的功能。
我们期望Rosetta API终端可以在不使用特定编解码器的情况下,在多个运行链中实现实时查询和同步写入事务。加入我们的旅程,请期待更多更新!