主页 > imtoken官网下载2.0安卓 > 在Oracle公有云上建立以太坊快速开发环境
在Oracle公有云上建立以太坊快速开发环境
先说说以太坊为什么这么受欢迎?
以太坊是一个基于区块链技术的去中心化应用平台。 它允许任何人在平台中构建和使用运行在区块链技术上的去中心化应用程序。
在没有以太坊之前,写一个区块链应用是这样的:复制一份比特币代码,然后更改加密算法、共识机制、网络协议等底层代码(SGD)。 以太坊平台封装了区块链底层技术,允许区块链应用开发者直接基于以太坊平台进行开发。 开发者只需要专注于应用本身的开发,大大降低了难度。
目前,围绕以太坊已经形成了一个比较完整的开发生态:在社区的支持下,有很多开发框架和工具可供选择。
几个核心概念:
以太坊上的程序称为智能合约,它是代码和数据(状态)的集合。 智能合约可以理解为用代码编写的合约(特殊交易),可以在区块链上自动执行(由消息驱动)。 它让我们可以编写几乎可以做任何事情的程序(智能合约),就像任何高级语言一样。 智能合约非常适用于对信任度、安全性和持久性要求高的应用场景,例如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权管理、物联网、点对点交易, ETC。
官方推荐的智能合约编程语言是Solidity,文件扩展名以.sol结尾。 Solidity 语言与 JavaScript 非常相似,用它来开发合约并将它们编译成以太坊虚拟机字节码。
EVM(以太坊虚拟机)是以太坊中智能合约的运行环境。 Solidity之于EVM,就像它之于JVM的关系一样,所以大家很容易理解。 以太坊虚拟机是一个隔离的环境,EVM 内部运行的代码无法从外部访问。 EVM 在以太坊节点上运行。 当我们将合约部署到以太坊网络后,合约就可以在以太坊网络上运行了。
合约的字节码形式运行在以太坊虚拟机上。 我们需要在部署之前编译合约。 您可以选择 Browser-Solidity Web IDE 或 solc 编译器。
在以太坊上开发应用程序时,经常会用到以太坊客户端(钱包)。 我们在开发的时候一般不会接触到客户端或者钱包的概念。 它是什么? 以太坊客户端,其实我们可以理解为一个开发者工具,提供账户管理、挖矿、转账、智能合约部署和执行等功能。Geth是以太坊开发中使用的典型客户端,即基于Go语言开发。 Geth 提供了一个交互式命令控制台,通过命令控制台包含了以太坊的各种功能(API)。
智能合约的部署是指将合约字节码发布到区块链上以太坊上多少应用,并使用特定的地址来标记合约。 这个地址被称为合约账户。
大家都想学习以太坊的开发,但是通过上面的介绍,大家也发现,要想开通智能合约,必须要建立一条以太坊的私链或者开发环境。 但是如何搭建这个实验或者开发环境呢?
今天要给大家介绍的是如何在Oracle的公有云windows server上建立一个基于TestRPC和Truffle结合的方法建立以太坊模拟开发环境。
我们先来了解一下它们是什么? TestRPC 是一个在本地使用内存模拟的以太坊环境。 可用于搭建测试环境,基于Node.js开发。 因此,要使用TestRPC,必须先安装Node.js环境,版本必须大于6.9.1。 Truffle 是以太坊智能合约应用程序的开发框架。
当然,你也可以使用以太坊客户端搭建私有链。 与TestRPC和Truffle相比,这两种方式显然效率更高。 它使我们能够更专注于合同开发和业务理解。 这也是我们推荐它的原因之一。
以太坊开发环境及示例演示:
本演示在 Oracle 云中的 Windows 服务器上执行。
1.下载nodejs安装
,首先进入c盘下的notejs目录,
2.安装TestRPC
npm 安装-g ethereumjs-testrpc
3、查看版本信息,启动testrpc
testrpc –版本
新建一个命令行窗口,进入c盘下的notejs目录
4.安装松露
npm 安装 -g 松露
5.查看版本信息
松露--版本
6.安装solc
npm 安装 -g solc
7. 运行测试
mkdir mytruffle && cd mytruffle
truffle init,创建一个空的 truffle 项目
8.生成的工程文件说明
contracts/:存储智能合约文件。
migrations/:存储与部署智能合约相关的文件。
test/:智能合约测试文件,测试文件可以用JavaScript或Solidity编写。
truffle.js:Truffle 的配置文件。 如果使用Windows cmd命令行,需要将文件名改为truffle-config.js之类的。
9. 写合同
在contracts/目录下新建文件Hello.sol
pragma solidity ^0.4.23;
合同你好{
函数 sayHello() 公共返回(字符串){
返回(“你好世界”);
}
}
10.编译前准备
truffle-config.js 文件的内容是
模块.exports = {
看
/有关自定义 Truffle 配置的更多信息!
网络:{
发展: {
host: "127.0.0.1", 私链地址
端口:8545,端口
network_id: "*" // 匹配任何网络id
}
}
};
11.编译合约
在命令行输入truffle.cmd compile,如果出现类似下图的结果,则编译成功。
编译./contracts/Migrations.sol ...
编译./contracts/Adoption.sol ...
编译成功后,在项目根目录下会发现一个build文件夹,里面存放着智能合约的编译结果。
12.部署智能合约
要把智能合约部署到区块链上,自然需要区块链。 我们使用上面步骤建立的truffle区块链。 默认会生成10个账户,每个账户有100个ETH。 默认监听 localhost:8545
在/migrations目录下新建文件2_deploy.js
变种你好=
文物。 要求(“你好”);
模块.exports
= 函数(部署者){
deployer.deploy(你好);
};
在命令行输入truffle.cmd migrate以太坊上多少应用,如果有如下输出,说明部署成功
C:\nodejs\pet-shop-教程>truffle.cmdmigrate
利用网络“发展”。
运行迁移:1_initial_migration.js
部署迁移...
...0x6ed9331930fa05422b8110727c33b2c117684577f48dec90ed3fd7a93fb6477d
迁移:0x05ed4e33134ee0c6712a551fc6b5eebb5233cbef
正在保存成功迁移到网络...
...
13.测试合约,在命令行窗口输入
松露控制台
然后输入:Hello.deployed().then(instance =>contract = instance)
然后输入:contract.sayHello.call()
我们看到了预期的结果,我们的第一个合约已部署并正常运行。
我们的第一个Hello World就成功了,接下来我们可以学习更复杂的案例。
参考
•
•
•
•
•
•
•