MultiChain 2.1:变量和库

源节点: 1587135

使智能过滤器更智能

今天,我们很高兴发布MultiChain 2.1,它为MultiChain开发人员提供了两个重要的新功能。

一年半以前,MultiChain 2.0推出了 智能滤波器,使定制逻辑可以嵌入到区块链中以验证交易和数据。 智能过滤器在概念上类似于其他区块链平台提供的“智能合约”,但具有不同的设计以适合MultiChain更快的交易模型。

智能筛选器有两种类型-事务筛选器和流筛选器。 交易过滤器通过检查其输入,输出和元数据来整体验证链上交易。 如果事务未通过过滤器,则网络中的每个节点都将拒绝该事务。 流过滤器可验证写入到 多链流,以JSON,文本或二进制格式查看其密钥,发布者以及链上或链下数据。 如果某项未通过过滤器,则将其标记为无效,并且订阅该流的每个节点都会隐藏其数据。

两种类型的智能过滤器均使用JavaScript编写,并在Google的确定性版本中运行 V8,这是支持Chrome,Node.js和许多其他平台的超快速JavaScript引擎。 简单的过滤器易于编码和理解-例如,以下是一个流过滤器,用于验证项目至少具有两个键:

函数 filterstreamitem() { var item=getfilterstreamitem(); // 回调函数 if (item.keys.length2) return "至少需要两个键"; }

总体而言,我们在智能过滤器方面获得了很好的反馈,但我们也反复听到过有关如何使它们变得更好的两种方法。 首先,许多用户希望过滤器能够读取区块链上的信息,但不能读取正在验证的交易或流项目中的信息。 用例包括更改的允许国家列表,外部“ oracle”提供的汇率或切换某些规则的开关。

其次,一些开发人员希望在多个过滤器中使用一组JavaScript函数,而不需要重复代码。 他们还希望能够更新这些功能,修复错误或涵盖一些新情况,而无需禁用其现有过滤器并在其位置创建新的过滤器。 例如,共享代码可以包含特定于应用程序的逻辑,用于验证JSON或解析PDF内容的第三方库。

多链2.1 引入了两种新型的链上实体, 变量,以满足这些需求。

变量

让我们从MultiChain变量开始。 这些工作与常规编程语言中的工作非常相似,但是具有区块链的扭曲。 可以在区块链上创建任意数量的命名变量。 每个变量都有一个动态地址集,该地址集允许更新其值,并且该地址集由一个或多个变量管理员(默认情况下,仅变量的创建者)管理。 在区块链交易中创建或更新变量,可以使用简单的高级API命令将其发送。 或者,可以使用较低级别的API来构建复杂的事务,这些事务自动设置一个或多个变量,写入流项目,转移资产,更改权限等。

变量值本身可以包含任何JSON结构,包括数字,字符串,布尔值,嵌套对象和数组,并以有效的方式存储在链上 JSON格式 序列化格式。 当然,智能筛选器可以使用简单的回调函数查询变量的当前值。 但是因为这是一个区块链,所以变量值和写入器的完整历史记录也可用,并且可以使用另一个回调函数部分或全部检索。 为了简化开发,这些回调也可以通过面向应用程序的API使用。

图书馆

让我们继续看一下库,它们是变量的更大同级对象。 与变量一样,可以在区块链上创建任意数量的命名库。 但是图书馆有更丰富的更新模型,提供三种可用模式: 一成不变, 即食类待批准.

一次 一成不变 库创建后,其代码将永远无法更改。 一个图书馆 即食类 更新可以像变量一样进行更改,它具有一组可以单独替换其代码的地址。 但是在图书馆里 待批准 更新,只有在一定比例的区块链全球管理员批准后才能应用更新。 最后一种模式在安全性和灵活性之间提供了很大的折衷。

库的代码用常规JavaScript编写,并定义了供Smart Filter使用的一个或多个函数。 与变量一样,库是通过特殊的事务创建或更新的,可使用API​​轻松发送。 创建智能过滤器后,然后将在可选参数中提供其所需的库。 库始终在需要它的过滤器的上下文中运行,因此它可以在适当的地方使用智能过滤器回调。 MultiChain提供了广泛的功能,可在区块链上进行更改之前在本地测试(和回滚)库及其更新。

把它包起来

与与区块链规则有关的所有功能一样,MultiChain 2.1的社区版和企业版中都提供了变量和库。 我们的开发人员文档提供了有关新产品的详细说明 JSON-RPC API智能筛选器回调 可用的。 要在已经运行的区块链上使用新功能,请首先将节点迁移到MultiChain 2.1,然后 升级 链到版本20012的协议。

下一个是什么? 在接下来的几个月中,我们将专注于一些详细而深入的幕后工作,以改善MultiChain承受大量负载时的性能和并发性。 这将提高需要查询节点的应用程序的响应能力,而该节点将继续每秒处理数百或数千个新事务。

同时,我们在MultiChain团队中的所有人都希望我们的用户和客户在来年健康健康。 我们知道对于每个人来说都是艰难的时期,我们希望在安全的情况下尽快恢复正常的会议节奏。

请发表任何评论 在LinkedIn.

时间戳记:

更多来自 Multichain