宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 世界币 > 正文

区块链研究实验室 | 使用JavaScript编译和部署以太坊智能合约

作者:

时间:1900/1/1 0:00:00

以太坊智能合约的发展在2018年呈指数级增长,2019年似乎将遵循这一趋势。有些框架,如Truffle,可以帮助我们快速构建和维护智能合约,如果您想让亲自动手体验的话,我将解释如何编译您的智能合约,并使用自己的脚本将其部署到以太坊网络。

注意:我将使用简单的智能合约,因为本文的目的只是展示如何编译和部署脚本。

项目具有以下结构:

文件夹合同包含我们的智能合约。对于这篇文章,我们将使用两个简单的智能合约:

MyContractA.sol

MyContractA.sol

如您所见,我们有两个文件,其中一个包含两个智能合约,证明我们可以拥有任意数量的智能合约。

脚本编译

现在,一旦我们有了初始项目结构和智能合约,就可以开始构建编译脚本了。

声音 | 倪光南:可打造区块链专用的芯片:近日,中国工程院院士倪光南到访微众银行,与微众银行副行长兼首席信息官马智涛就开源技术、区块链技术等一系列问题进行了深入交谈。倪光南院士表示:“通过开源的区块链技术平台,可以逐步把软件、硬件、芯片融合进来,可以融入RISC-V方案,把它变成一个区块链专用的芯片,这不仅带来了自主可控的优势,更大大降低了技术应用和实践的门槛。”[2018/11/27]

该脚本的目的是为每个合约生成一个JSON,每个JSON都包含已编译的合同信息。这些JSON将存储在名为build/的输出路径中

构建脚本的步骤如下:

创建构建/目录。

获取我们的合同来源。

编译合同并将输出写入文件。

第1步-创建build/文件夹。

动态 | 乐天证券利用区块链等技术改善客户登录流程:据bitpress.jp消息,乐天证券利用区块链等技术改善客户登录系统流程,客户的信息将分散保存于保存在客户、乐天证券和日本保全公司SECOM处,必须通过所有认证方可登录系统。届时客户将无需输入ID和密码,通过手机或电脑输入指纹或者扫描面部即可登录系统。据悉,此举在日本尚属首次。[2018/9/25]

这一步是最简单的,因为我们只需要了解JavaScript的一些基础知识。

现在要将所有文件的来源都放到智能合约文件夹中。在这一步中,只需要JavaScript就不需要以太坊概念,但还是有点复杂。

对于contracts文件夹中的每个文件,我们在sources对象中添加一个新字段,其中键是文件名,值是.sol文件的内容。

第3步-编译并写入输出

公告丨广州民间金融街将利用区块链等技术,搭建资产估值及融资服务:广州日报6月25日报道,日前,广州民间金融街正式向省金融办申请创建“广东省数字普惠金融试验区”,并将重点建设数字普惠企业资产估值及融资平台。为金融科技、大数据、人工智能、区块链等领域的创新创业企业搭建资产估值及融资服务,降低轻资产企业的融资困难。[2018/6/25]

现在我们已经有了输出文件夹和智能合约的内容,是时候编译它们了。

首先,我们必须定义一个对象,该对象将作为Solidity编译器的信息输入。

language:我们智能合约的编程语言,目前是使用Solidity,但你也可以选择其他编程语言。

sources:我们合同的内容。

settings:此选项告诉编译器我们想要生成哪些输出字段。对于此示例,我选择sources中的所有文件生成abi和evm.bytecode。这两条信息是部署阶段所必需的。

区块链板块高开1.41% 先进数通涨停:A股开盘,区块链板块开在1215.592点,高开1.41%。最新价格1216.286,点,涨幅1.47%。76只概念股,其中只有9家下跌。个股方面:乐心医疗、先进数通一字涨停,科蓝软件开盘后也快速封涨停,信息发展、汇金科技等跟随。跌幅前列:高伟达跌2.79%,恒银金融跌3.25%,优博讯跌1.81%。[2018/4/13]

一旦我们有了编译器的配置对象,我们就可以执行它了。

第一行获取一个包含我们编译的脚本的对象。两个for循环允许我们在不同的JSON文件中存储单个.sol文件中的智能合约。

最后一步是把这三部分连接在一起

这样我们就完成了编译脚本。如果我们运行它,项目结构应该如下所示:

我们已经gitignoredbuild文件夹,因为没有意义在Git下跟踪它。

现在我们已经编辑了我们的智能合约,是时候将它们部署到区块链上了。

脚本部署

是时候将我们的智能合约部署到以太坊区块链上了。

首先,我们需要两件事来将智能合约部署到区块链:

解锁帐户:由于我们需要使用gas来发送将创建智能合约的交易。

连接到区块链的节点:我们正在向网络发送交易,因此我们需要连接到链上。

关于第一点,我们将使用HDWalletProvider,这个工具允许我们使用助记符十二个单词短语解锁帐户并连接到以太坊节点。但是......节点在哪里?好吧,我们可以做两件事,运行我们自己的以太坊节点或使用Infura。Infura是一项服务,它允许我们连接到以太坊网络,而无需运行我们自己的以太坊节点。所以,我们似乎已经涵盖了两点。

解锁帐户并连接到以太坊节点。

要使用Infura,我们需要在其页面中注册。它将生成我们需要使用其服务的API密钥。

我们将使用Web3JS与区块链进行交互。Web3需要提供程序来连接节点并与节点交互。这个提供程序是HDWalletProvider,我们来配置它和Web3。

HDWalletProvider的第一个参数是我们的12个单词助记词。这个短语允许提供者解锁帐户,第二个参数告诉提供者以太网节点在哪里,在这种情况下我们通过Infura连接。

最后我们在web3中设置了提供者。

通过正确配置web3,我们可以最终部署合同。

首先,我们需要我们编译的脚本。

然后,在第8行中,我们使用Web3API创建智能合约,并将智能合约的接口传递给它。接下来,我们需要创建一个包含智能合约信息的部署事务:

data:合同的字节代码。它以0x开头表示它是十六进制的。

arguments:我们的智能合约构造函数的参数。

创建事务后,我们将其发送到以太坊区块链,以便为节点处理它:

from:签署交易并发送的帐户。在第4行中,我们获得了HDWalletProvider生成和解锁的帐户以及12个单词短语。

gas:我们想要用于发送交易的最大gas量。

第18行的console.log对于获取部署合同的地址很重要,这样我们将来可以将其用于DAPP、用于其他合同等。

脚本的最后一行告诉提供程序结束与以太坊节点的连接。

如果我们执行脚本,一段时间后,我们将获得如下跟踪:

现在我们可以访问EtherScan并查看我们在区块链中部署的智能合约。

最后,我们已经部署了智能合约,并且每个人都可以访问。我希望这篇文章有所帮助。

标签:区块链以太坊SOLWEB区块链存证流程图以太坊最新价格行情LNAsolution Coinweb3.0币种怎么提现

世界币热门资讯
Grin首次硬分叉计划在7月启动,分工明确,只欠东风

Grin在七月将迎来第一次硬分叉,算法调整、协议升级、弃用版本,你都清楚了吗? Grin第一次硬分叉 区块高度和日期 总结 Grin一开始就表明,在上线头两年将进行4次分叉。每次60*24*7*26=262,080区块.

1900/1/1 0:00:00
PIEXGO RocketGo首期首发项目ZORO 限时抽签申购

PIEXGORocketGo正式上线首期项目ZORO,开启在NEO底层技术上实现的首个跨链游戏垂直生态项目,本次代币销售将采用抽签方式.

1900/1/1 0:00:00
Forbes:进军零售业区块链需克服三大技术挑战

区块链技术正在对各行各业产生广泛而深入的影响。Forbes撰稿人NikkiBaird今日撰文分析了在零售业中区块链将要面临的几大技术挑战Baird认为在零售行业,区块链的技术细节并不重要.

1900/1/1 0:00:00
多家交易所遭邮件钓鱼攻击 价值超40万美元的BTC或失窃

据慢雾科技消息,近日,多家数字货币交易所向慢雾安全团队反映,其收到了敲诈勒索信息。敲诈者向交易所发送邮件或Telegram消息称,交易所存在漏洞,一旦被攻击,将导致平台无法被打开。若要获取漏洞报告,需向指定的地址支付BTC.

1900/1/1 0:00:00
号令天下、莫敢不从--USDT对加密市场影响力分析

2014年11月USDT横空出世,此后借助着P网以及Bitfinex的大力支持,加上9.4的东风,USDT不仅成为稳定币的老大哥,更是成为市场之中一股不容小觑的力量.

1900/1/1 0:00:00
Facebook降维打击腾讯阿里,美国将夺取数字霸权?

在中国人眼里,支付宝和微信已经是巨无霸,他们想做什么几乎没有不成功的。但Facebook的用户是这两家加起来的2-3倍,去年底达到了27亿人。 第二,没有手续费.

1900/1/1 0:00:00