1、基本概念
上篇文章中,已经讲过Go-Ethereum 1.7.2 如何安装及搭建以太坊私有链,这里就不多介绍。
在本文讲解之前,先介绍以下几点基本概念。
1.1、什么是智能合约?
智能合约是存储在区块链上的一段代码,它们可以被区块链上的交易所触发,触发后,这段代码可以从区块链上读取数据或者向区块链上写入数据。
1.2、什么是Solidity?
Solidity 是 Ethereum 的一种契约型编程语言,运行在Ethereum虚拟机(EVM)之上。
1.2.1、Solidity的语言特性
它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些:
- 以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
- 由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付。
- 存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是区块链。
- 运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用的方式。因为原来一个简单的函数调用变为了一个网络上的节点中的代码执行。
- 最后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。
1.3、什么是 Browser-solidity?
Browser-solidity 是一个官方提供的一个基于浏览器的合约编译器,非常好用,而且build版本会紧跟最新的 Solidity 的 build 版本。但由于网络原因以及GFW的存在,有可能会另一部分人访问很慢,进而影响开发效率。
可以直接在线使用,访问后面的地址:https://remix.ethereum.org
2、Browser-solidity 的源码在哪里?
https://github.com/ethereum/browser-solidity
3、如何在本地安装 Browser-solidity?
由于国内网络的GFW原因,以及在网络上访问会影响效率,推荐部署到本地开发。
安装Browser-solidity,建议先安装 Nodejs
我们只需要执行以下命令即可安装NodeJS的最新v6版本:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs安装完成后我们可以使用以下两个命令来查看安装的Node版本和npm版本。node –v
npm -v下面的4行代码开始将Browser-solidity安装到本地。
? /home/cuijb/> git clone https://github.com/ethereum/browser-solidity
? /home/cuijb/> cd browser-solidity
? /home/cuijb/browser-solidity> npm install
? /home/cuijb/browser-solidity> npm run prepublish安装以后,通过以下命令启动
Browser-solidity:npm start? /home/cuijb/browser-solidity>npm start
> browser-solidity@0.0.0 start /Users/lion/my_project/_eth/browser-solidity
> npm-run-all -lpr serve watch onchange
[serve ]
[serve ] > browser-solidity@0.0.0 serve /Users/lion/my_project/_eth/browser-solidity
[serve ] > execr --silent http-server .
[serve ]
[watch ]
[watch ] > browser-solidity@0.0.0 watch /Users/lion/my_project/_eth/browser-solidity
[watch ] > watchify src/index.js -dv -p browserify-reload -o build/app.js
[watch ]
[onchange]
[onchange] > browser-solidity@0.0.0 onchange /Users/lion/my_project/_eth/browser-solidity
[onchange] > onchange build/app.js -- npm-run-all lint
[onchange]
[watch ] WS server listening on 58651然后打开浏览器,在地址栏输入: http://127.0.0.1:8080,可以看到以下效果: 版权声明:本文为jambeau原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。