我们在区块链应用程序开发中使用的技术

13年开始,我们搭建了不少交易平台,这么多年以来我们已经创建了基于区块链的平台以及令牌产品。最近我们甚至开发并推出了我们自己的区块链baas平台。随着我们制作越来越多的区块链应用程序,我们的经验不断累积增长。在本文中,我想与您分享我们已经完成的一些区块链项目中使用的技术堆栈。我想关注的项目分为三大类:令牌产品,交易平台和开源区块链工具。

 

令牌产品

在令牌产品方面,我们开发了一些产品,我们有一个简单的流程和内部框架。我们通常使用以太坊区块链,因为它在市场上处于领先地位。它提供稳定的开发和维护。与其他区块链平台不同,以太坊允许我们制作可编程智能合约,并提供所有工具(Solidity),使开发更顺畅。此外,以太坊开放供公众使用,在GitHub中得到有力保障。它也是基于工作量的证明,使其成为企业应用程序的完美选择。

 

我们在Solidity中编写以太坊智能合约,这是一种受C ++,Python和Javascript影响的OO语言,目标是以太坊虚拟机EVM。使用Truffle框架开发dApp(分散式应用程序)是很好的。它为编码和测试应用程序提供了一种简单而舒适的方式。对于STO,我们使用AWS Lambda和DynamoDB作为数据存储来运行它们。我们的AWS基础架构处理区块链周围的所有操作,例如注册新用户或存储地址白名单。

 

这些地址可以在智能合约上执行操作。我们的团队使用AWS Lambda运行令牌产品,因为它可以安全地处理流量。令牌产品具有可变流量。换句话说,交通在STO开始时的一系列增长之间波动,仅在进一步提升之后再次增长。AWS lambda使我们能够在产品生命周期的早期以最低成本维护STO。如果对令牌的兴趣很大,AWS Lambda可以为我们处理流量,因为它会自动扩展。

 

交易平台

除了我们开发的bitm,我们还帮助设计了数十个交易平台。bitm是关于预测衍生价值范围。多个用户可以是称为虚拟交易楼层的预测事件的一部分。同时,01级也是关于交易衍生品,但用户只能一对一玩。Level01中的预测导数是二元意义,用户只能预测某事发生与否。我们称他们为交易员和匹配者。当交易者开始请求时,匹配器将该请求与相反的预测匹配。这两个应用程序共享一些功能,但它们都具有一些独特的功能,可以将它们彼此区分开来。

 

在这两者中,我们使用Solidity和Truffle框架来实现智能合约。在服务器端的Level01中,我们使用了Node.js. 它的优点是Solidity类似于JS所以如果开发人员只知道这两种语言中的一种语言,他或她可以在一些小任务中支持主要开发人员。

 

相比之下,在CloseCross中,我们在Kotlin中编写了主要的服务器语言和Node.Js来开发支持区块链和服务器之间通信的微服务。CloseCross是基于RabbitMQ消息总线的基于事件的应用程序。我们再一次使用AWS运行这些应用程序,使用EC2服务。在这两个应用程序中,我们使用Oraclize.It(现在是Provable)作为区块链层的oracle。

 

在两个区块链应用程序开发项目中,我们决定在客户和开发团队之间的协作过程中使用哪些技术进行为期两周的迭代冲刺。这种工作方法可以最佳地利用资源和最佳产品。

 

园丁甲骨文

区块链神谕的概念是在区块链内部无法从外部世界获取信息。这就是所谓的甲骨文问题。所以你必须让oracle监听区块链上的事务并作为回应,将一些信息放入区块链中。正如我所提到的,我们最初使用SaaS工具Oraclize IT来实现这一目标。但过了一段时间,我们想出了将自己的oracle作为开源产品的想法。然后Gardener诞生了 - 这种类型的第一个开源解决方案。我们一直使用Solidity和Truffle框架构建它,以便在服务器端开发智能合约和Node.js。

 

Gardener已经是一个可以投入生产的工具,它是一个复杂的解决方案,适合我们未来的区块链应用。您可以自己托管它,并使用它连接到任何开放的API。它配有外部库,可帮助您将其与智能合约相集成。它支持不同类型的请求和不同格式的响应。将来,它将提供各种模式,让您可以决定谁应该为以太坊oracle的请求付费。它是一个高度可配置的系统。   

 

结论

现在您已经部分了解我们制作的区块链应用程序开发项目。您还知道我们使用的工具。我们专注于稳定和成熟的技术,以构建我们的新解决方案并为客户提供最大价值。其中一些重复,因为我们重视使用经过验证的工具的经验,并知道如何最好地配置它们。

 

Gardener一样,我们也会在我们的项目中制作自己的工具。有时我们会尝试新的技术堆栈,然后在项目结束后,我们会回顾我们的选择并对其进行评估。到目前为止,我们已经建立了足够的系统,可以让我们了解哪些工具符合我们的需求,以满足客户的想法,并尽快将产品推向市场。

 

猜你喜欢

转载自www.cnblogs.com/ruiec/p/11075988.html