区块链学堂(11):Browser-solidity 2–右侧的奥秘
来源:互联网 发布:联合程序员开发网 编辑:程序博客网 时间:2024/06/06 17:20
首先重复一遍Browser-solidity的地址:https://ethereum.github.io/browser-solidity
Browser-solidity是一个官方提供的一个基于浏览器的合约编译器,非常好用,而且build版本会紧跟最新的Solidity的build版本。但由于网络原因以及GFW的存在,有可能会另一部分人访问很慢,进而影响开发效率。下面介绍如何在本地部署Browser-solidity
本地部署Browser-solidity方法
Browser-solidity Github地址:https://github.com/ethereum/browser-solidity
- Step 1: 将源代码下载到本地,并解压缩
- Step 2: 到下载下来的文件夹下,执行下面命令(基于源代码进行build)
npm install # fetch dependenciesnpm run build # build application into build/app.js
- Step 3: 启动npm 服务器
npm run serve
本地打开效果如下:然后就可以随意的撰写自己的智能合约了。
Browser-solidity 细节详解
这里用到的Browser-solidity是官网的,如果打不开或者速度太慢,请参照上面的本地搭建方法。
Browser-solidity的右侧详细解析,请参看下图:
- 1.当前的solidity版本,如上图截图所示为0.4.9,这个默认用的是当前最新的release版本。
- 2.点击下拉框,可以选择不同的版本,包括还未成熟的最新构建版本,或者是之前的版本等。 个人强烈建议,尽量选择release版本,如下图所示的这些
- 3.点击create,会在内存中将该智能合约创建一个实例,即将下面的web3 deploy代码部署在虚拟的内存中。
- 4.bytecode是源代码的编译产物,这个也是最终会被放到区块链上的标识。任何在网络里的人都可以读到这段bytecode.
- 5.interface 是智能合约除了bytecode之外的另一个核心,他是该智能合约和外界沟通的核心
- 6.web3.deploy 代码,是可以直接部署在geth网络上的一段部署代码,在上一章中,我们已经试过了,只要复制黏贴这段代码,就可以直接在一个区块链私有链上进行部署,并且调用他。
- 7.from 代表合约由那个账户生成,那个账户生成,则生成所需的gas就需要该账户承担,默认为eth.accounts[0],因为所有的挖矿所得的以太币也默认都存入该账户中区。 data: 代表的就是bytecode gas: 代表的是为了部署该合约最多准备的gas数量,当然实际上可能用不了这么多gas,具体消耗以实际使用量为准,这里只是设定一个最大量。
- 8.最后这段是一个典型的javascript的异步调用的写法,将上面的new方法的结果传递给下一个方法 function(e,contract) 在下一个方法中处理如果挖矿成功的显示结果。
到这里为止,我们已经详细剖析了一个最简单的智能合约,以及以太坊的一些底层技术细节。
下一章中,我们仍将在browser-solidity这个工具中,讨论稍微复杂点的智能合约。
原文链接:http://www.ethchinese.com/?p=765
QQ群:559649971 (区块链学堂粉丝群)
个人微信:steven_k_colin
获取最新区块链咨询,请关注《以太中文网》微信公众号:以太中文网
0 0
- 区块链学堂(11):Browser-solidity 2–右侧的奥秘
- 区块链学堂(10):Browser-solidity
- 区块链学堂(4):以太坊基本概念及工具Geth、Browser-solidity、Mist
- 区块链学堂(3):Solidity
- 区块链开发(五) Browser-solidity
- 区块链开发(六)本地部署 Browser-solidity
- 区块链学堂(第一课):区块链引子+智能合约+Solidity
- 区块链学堂(2):最简单的智能合约
- browser-solidity
- [Introducing Ethereum and Solidity]以太坊和solidity介绍----第一章-连接区块链知识的断点
- 区块链学堂(9):Geth 基本命令2
- 区块链-智能合约简单脚本编写方法(solidity)
- 区块链-智能合约简单脚本编写方法(solidity)
- 区块链学堂(5):Geth 安装
- 区块链学堂(1):区块链引子
- 区块链开发(十)区块链技术-智能合约Solidity编程语言
- 以太坊代币开发智能合约solidity的奥秘
- 区块链以太坊Solidity框架Truflle的migration配置ARTIFACTS.REQUIRE()
- 【Android】- Fragmnet嵌套Fragment时内容显示紊乱
- 1067
- pwn bof 两题
- Flask--哈希加盐-加密存储密码
- 动态规划(一)最长公共子序列
- 区块链学堂(11):Browser-solidity 2–右侧的奥秘
- ディレクトリにより、フォルダ容量の計算
- 网络
- 1068
- a configuration error occurred during startup.Please verify the preference field with the prompt:Can
- uva 343 What Base Is This?
- 1069
- 11.可阻塞的队列
- BZOJ P1177[Apio2009]Oil