任何人都可以建立智能合约

智能合约将帮助您在新的去中心化经济中开展业务。大多数智能合约都是在以太坊,Lisk或Cardano等DApp(去中心化应用)平台上签订的,而IBM等大型科技公司正在开始自己的业务来构建它们。这是有道理的,因为有很多公司宁愿信任像IBM这样的技术巨头为他们开发产品,而不是自己解决新技术.

对于知道如何构建合同的开发人员来说,智能合同开发可以成为一种可销售的技能。智能合约令人惊讶的部分是它们并不难构建。 DApp平台和周围工具使创建它们和轻松构建自己的区块链技术成为可能.

Javascript开发人员不应被区块链吓倒。有了更多的了解,区块链就变得像您通常会实现的大多数其他框架一样.

计划智能合约

首次创建智能合约时,您应该决定要使用什么合约.

在此示例中,我们重点关注事件票证。票务存在巨大的问题,黄牛购买了大量票证,人们使用伪造票证。区块链技术在很多方面都表现出色。其中两个正在促进交易并跟踪信息.

因此,合同中的简单代码行可以限制机票的转售价格。这可以防止黄牛购买一堆门票,因为现在出售它们将无利可图。使用智能合约,您还可以生成特定于所有者的,无法伪造的,唯一的令牌化票证。如果您是喜欢参加音乐会,节日和体育赛事的人,那么您会发现它的吸引力.

DApp平台选项

接下来要选择的是在哪个DApp平台上构建合同.

以太坊 是最大,最成熟的平台。它还拥有最活跃的用户群,在任何类型的开发中,活跃的社区来回答您的问题是完成产品的关键。但是,缺点之一是它使用自己的语言Solidity来编写合同.

另外一个选择, 鳞片, 是基于Java的DApp平台,因此您不会遇到任何新语法。它还拥有自己的DApp商店(例如Google Play或iTunes商店),您可以在完成后在其中发布您的应用.

您也可以尝试 卡尔达诺 它由以太坊的创始人建造,并拥有一支庞大而令人印象深刻的团队。他们的产品仍然是新产品,但是如果他们兑现了将合同信息与交易数据分开的承诺,那么这可能是前进的正确选择.

现在,让我们以以太坊或Lisk作为首选平台.

作为Java语言开发人员,Lisk似乎是合乎逻辑的决定,因为您已经具备使用该语言的经验.

但是,不要指望以太坊。开发社区非常强大,您可以利用可用的过多信息来弥补对Solidity的任何误解。以太坊还包括由Consensys创建的Truffle框架,可以轻松地集成和测试智能合约应用程序.

以太坊智能合约框架

建立智能合约

团结听起来比实际更令人生畏。您可能会注意到关于该语言的第一件事是它与JavaScript类的惊人相似之处。但是,仍然存在一些细微的差异,例如分号的要求和哈希函数的使用。这 散列函数 用于创建唯一键并将其映射到其他变量。在我们的示例中,我们将使用它们创建唯一的票证并将其映射到购买票证的帐户.

在建立您的第一个以太坊合约时,我们建议使用以下开发环境: remix.solidity.org. 它为您提供了一个交互式环境来部署您的合同并通过不同的以太坊账户与之交互。通过下拉菜单,您可以通过按相应的按钮来切换帐户并使用合同的任何功能调用.

寻找什么

关于Solidity的独特之处在于它对寻址的使用。所有以太坊账户都有唯一的地址,这些地址代表同意合同的各方.

在我们的票务合同示例中,创建活动的人都将附有其帐户地址。每当有人购买新票时,资金就会直接转给活动所有者,带走中间人。买方打电话,资金从他们的帐户中取出,由他们的地址标识,并转给所有者.

Solidity还具有将资金附加到智能合约电话的独特方式。每个函数调用都带有一条消息。该消息可以包含来自发件人的唯一信息,包括他们的帐户地址以及他们要发送给合同所有者的以太币值.

还值得注意的是,在Solidity中,并非所有合同通话都是免费的。更改合同中的信息,例如购买或使用票,即确认合同执行费用的机器网络。天然气基本上是利用网络计算能力的代价.

其他仅查询合同以获取信息的呼叫,例如查找机票价格或获取剩余机票数量是免费的。这是因为没有有关合同的信息正在更新。这些活动没有风险.

连接到JavaScript

Solidity工作中最具挑战性的部分是将合同与Javascript集成在一起。全部使用 松露框架.

集成合同的第一步是部署合同并将其迁移到测试网络。 Truffle提供了自己的RPC,即独立的以太坊测试网络,称为Ganache。此过程为您提供了合同的JSON版本,您可以通过Javascript应用程序使用测试网络的地址调用该合同.

如果您需要有关此过程的更多信息,Truffle可以很好地将其概述在他们的文档和示例框中。 网站.

松露盒

创建智能合约时要克服的另一难题是如何对其进行概念化。将区块链视为一个Web开发人员,您可以将其视为数据库的替代品。与其一味地收集所有信息,不如遵循一系列合同和交易来获取信息。.

因为区块链就像一个数据库,所以自然要做的就是将合同连接到您的服务器。为合同创建API层使得从应用程序客户端访问信息就像发出AJAX请求一样容易。有一个很好的 示例框 在松露网站上获取此设置.

虽然区块链类似于数据库,但并不完全相同。它具有涉及事务,哈希和块创建的完全独特的协议。这可能是以太坊开发中最困难的部分。在我们的票务示例中,您需要构造与购买票证呼叫不同的合同呼叫以购买票证。以太坊虚拟机对这些电话很挑剔.

这是大型以太坊开发社区有用的另一个领域。以太坊很可能已经在以太坊Stack Exchange上回答了您的任何问题,如果没有,其他开发人员将很乐意为您完成合同.

结论

本文并不是要教您如何开始编写Solidity。相反,它为您提供了智能合约的演练以及如何在Javascript应用程序中实现它。任何了解Web开发的人都可以在区块链上构建.

区块链背后的技术可能很难理解,但是像任何其他框架或开发人员工具一样,您不必知道如何使用它就可以构建。不要让区块链的神秘光环阻止您构建伟大的事物.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me