3个不稳定版本

0.2.0 2021年6月17日
0.1.1 2020年3月11日
0.1.0 2020年3月9日

#1000 in 数据库接口

Apache-2.0

180KB
3.5K SLoC

corda-rpc: 用于进行Corda RPC的Rust库

Build status Coverage status License: Apache 2.0

由于我不再在ING工作或在任何与Corda相关的项目上工作,除非出现资金,否则这个包不太可能进一步开发 — 我可以以自由职业者的身份提供服务。我很乐意回答有关代码及其当前状态的问题,并且我打算继续提供(被动)维护(如PR代码审查)。

Corda是一个开源区块链平台。要与Corda节点交互,您的代码需要通过AMQP 1.0与节点运行的代理进行通信。该项目针对稳定版Rust,并使用基于Tokio的异步网络I/O。这可能适用于运行在受限环境(IoT)或与其他原生代码接口的代码。

这个项目是在ING银行工作期间编写的,当时正在ValueX项目上工作,旨在为机构投资者创建一个数字证券发行平台。提供的功能被分为三个包,如下所述。

该项目目前的状态可以描述为预alpha。到目前为止,我已经努力使简单的RPC调用在Corda节点上工作,并且提供的内容仅就完成该目的而言是完整的。在network-map-snapshot中的示例代码将触发Corda节点上的RPC调用,并返回正确的响应。然而,这只适用于对其进行了一些更改的Corda节点。

corda-rpc: 适用于Corda RPC的特定抽象

Documentation Crates.io

虽然Corda RPC协议建立在AMQP 1.0标准之上,但它定义了自己的编码模式,将序列化转换为协议,以便协议消息可以自描述。这个包包含必要的序列化和反序列化原语的实现,并且将包含更多针对Corda的特定代码。理想的目标是实现与Corda的CordaRPCOps接口相匹配的实现。

oasis-amqp: AMQP 1.0协议的通用实现

Documentation Crates.io

“AMQP”这个名字通常用来指代由RabbitMQ和许多其他软件组件实现的协议的0.9.1版本,可以参考该协议的0.9.1版本。尽管名字相同,但由OASIS标准化的AMQP 1.0与0.9.1协议有很大不同。本软件包旨在提供一种通用(不特定于Corda)的协议客户端实现。

如上所述,该库目前还没有达到这一目标。虽然它提供了协议中严格必需的用于与代理交换消息的部分的健壮版本,但许多部分是缺失或不完整的。尽管如此,提供的构建块(特别是基于Rust强大的serde框架的序列化和反序列化)在许多情况下应该可以使填补缺失部分变得简单。

oasis-amqp-macros:辅助宏

Documentation Crates.io

oasis-amqp软件包的实现由一个过程宏支持,该宏为任何类型定义提供了所需的serde::Deserializeoasis_amqp::Described实现。

依赖项

~5–14MB
~164K SLoC