使用MVC模式实现区块链开发

栏目: 后端 · 发布时间: 6年前

内容简介:Convector是一个开源的区块链Javascript框架,目的通过抽象技术的复杂性来降低区块链使用障碍。下文是他们引入MVC模式的设计思想:当我们在设计Convector,我们想达到的基本目标之一是使开发人员与blockchain互动尽可能顺利。目前大多数用于区块链开发的语言和库都使用了很多复杂的术语,区块链开发人员的心智经常被底层区块链技术打扰,区块链开发人员应该关注应用程序逻辑而不是其背后的技术。

Convector是一个开源的区块链Javascript框架,目的通过抽象技术的复杂性来降低区块链使用障碍。下文是他们引入MVC模式的设计思想:

当我们在设计Convector,我们想达到的基本目标之一是使开发人员与blockchain互动尽可能顺利。

目前大多数用于区块链开发的语言和库都使用了很多复杂的术语,区块链开发人员的心智经常被底层区块链技术打扰,区块链开发人员应该关注应用程序逻辑而不是其背后的技术。

今天,区块链开发已经不需要数据库专家了。明天,区块链开发也不需要专门的区块链专家。

- 沃尔特蒙特斯

原因是:区块链是一种数据存储,大多数时间都受到一组预定义规则的保护,这些规则通常称为智能合约或链代码。

这就是为什么在Convector中我们为框架的核心原则选择一个熟悉的术语,这个术语就是应用开发领域中最成功的模式之一:MVC(模式 - 视图 - 控制器),它基本上包含一个描述数据的模型和一个控制器。

因此,假设你想创建自己的加密货币。其模型的属性将是:名称,符号,总供应,余额,创建者等。它的控制器符合以下方法:转移,批准,从哪里移出,mint等。如果你是一个技术娴熟的人,你已经意识到这些都是以太坊标准ERC-20的概念。

我们已经有了一个非常可靠的模型来说明如何轻松地塑造智能合约。但是,当我们迁移内部应用程序的合同时,我们意识到,如果我们想要使区块链开发变得非常简单,我们不仅要使得创建变得直接方便,还要使其使用变得方便。

我们发现自己编写了后端和UI服务,重复了调用智能合约的方法。这不好 :(

我们提出了一个想法,即采用我们已经为智能合约层创建的相同控制器和模型,并将它们转移到所有其他层,如服务器或浏览器,这样我们就可以自信地执行一行代码,Token.transfer(100, '0x165DE7FA3E5')

无论我们是否在浏览器、服务器或区块链等不同上下文中,这一条语句会足够聪明,它会采取必要的步骤来执行区块链交易事务。

因此,我们需要一种方法用于与区块链通信的逻辑,可根据环境上下文的不同而改变。在浏览器中不用安装区块链数据库,你所做的只是直接调用区块链API的HTTP方法。

控制器需要一个适配器来解析它们对模型执行的操作。在浏览器中,这可能会触发对后端的HTTP调用。在后端,这可能会触发对区块链的HTTP调用。在区块链本身,它实际上执行验证交易的步骤,即:交易作者可以转移这些代币吗?

模型需要一个可以执行CRUD操作的存储层。同样,在浏览器中,这可能是向区块链发送查询事务或向后端发送HTTP请求。在后端,可以从生成的数据库中读取或查询区块链。在区块链中,这可能是搜索区块的信息。

好处:

1. 互操作性。在不久的将来,你将定期在同一个应用程序上连接多个区块链,就像现在使用不同的API一样。能够在同一框架内与多个区块链交谈是我们的目标。现在,Convector正式支持Hyperledger Fabric,但这只是我们想要支持的多个区块链平台中的第一个。

2. 超越智能合约。区块链应用程序最常见的方案之一是与现有数据源(如API和数据库)集成。由于适配器/存储机制允许我们指定与Controller / Model实现分离的通信协议,因此可以很容易地区分您想要路由到区块链的逻辑操作以及在其他系统上处理的操作。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ruby on Rails电子商务实战

Ruby on Rails电子商务实战

Christian Hellsten、Jarkko Laine / 曹维远 / 人民邮电出版社 / 2008-4 / 49.00元

《Ruby on Rails电子商务实战》全面讲解了使用Ruby on Rails创建产品级应用程序的过程。书中通过演示构建网上书店的全过程,先后介绍如何使用如TDD的敏捷实践,启动一个项目并建立良好稳定的基础,如何深入Ruby on Rails,实现诸如将应用程序翻译成各种语言对产品进行调试等的普遍需求。其中用到的主要技术包括Ajax、聚合、设置标签和国际化等,还介绍了如何使用ActiveRec......一起来看看 《Ruby on Rails电子商务实战》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具