Browser-Solidity的本地安装及使用介绍
正所谓工欲善其事必先利其器,巧妇也难为无米之炊,所以在学习智能合约之前,必须要先把工具准备好。Browser-Solidity 是 Ethereum 官方的一个IDE项目,该名称准确的表述了,它是一款基于浏览器的 Solidity 集成开发环境,官方正式名称称之为 Remix,通过它我们可以编辑、编译、发布我们自己的智能合约。

基于浏览器的开发环境,那么它有在线版吗?有,就是这里https://remix.ethereum.org。既然有在线版为什么还要安装呢?你亲身访问一下就能发现答案了。

环境准备
我们以 Mac 为开发平台,且 Mac上已经装好了 npm 和 Node.js,如果你的 Mac 上没有安装,那么你可以参考这里的教程:How to Install npm & Manage npm Versions

2017年2月8日补充:今天手贱更新了一下Browser-solidity,重新执行npm install,然后 solc 这个包总是安装不成功,直到 brew install wget。?‍♀️

安装&启动
打开终端,进入你准备的好安装目录,将 browser-solidity 项目 clone 到本地。

git clone https://github.com/ethereum/browser-solidity
cd browser-solidity
进入 browser-solidity 目录后,运行如下命令,开始安装。

npm install
npm run
安装完毕之后,输入如下命令,开启 Remix 本地服务。

npm start
成功启动后,终端会输出如下内容,主要是一些与启动、参数说明和警告等相关信息:

browser-solidity@0.0.0 start /Users/dracarys/Documents/Ethereum/browser-solidity
npm-run-all -lpr serve watch onchange remixd
[remixd ]
[remixd ] > browser-solidity@0.0.0 remixd /Users/dracarys/Documents/Ethereum/browser-solidity
[remixd ] > node ./node_modules/remixd/src/main.js -s ./contracts
[remixd ]
[onchange]
[onchange] > browser-solidity@0.0.0 onchange /Users/dracarys/Documents/Ethereum/browser-solidity
[onchange] > onchange build/app.js -- npm-run-all lint
[onchange]
[watch ]
[watch ] > browser-solidity@0.0.0 watch /Users/dracarys/Documents/Ethereum/browser-solidity
[watch ] > watchify src/index.js -dv -p browserify-reload -o build/app.js
[watch ]
[serve ]
[serve ] > browser-solidity@0.0.0 serve /Users/dracarys/Documents/Ethereum/browser-solidity
[serve ] > execr --silent http-server .
[serve ]
[remixd ] example: --dev-path /home/devchains/chain1 --mist --geth --frontend /home/frontend --frontend-port 8084 --auto-mine
[remixd ]
[remixd ] Usage: main -S
[remixd ]
[remixd ] Provide a two ways connection between the local computer and Remix IDE
[remixd ]
[remixd ]
[remixd ] Options:
[remixd ]
[remixd ] -s, --shared-folder Folder to share with Remix IDE
[remixd ] -m, --mist start mist
[remixd ] -g, --geth start geth
[remixd ] -p, --dev-path Folder used by mist/geth to start the development instance
[remixd ] -f, --frontend Folder that should be served by remixd
[remixd ] -p, --frontend-port Http port used by the frontend (default 8082)
[remixd ] -a, --auto-mine mine pending transactions
[remixd ] -r, --rpc start rpc server. Values are CORS domain
[remixd ] -rp, --rpc-port rpc server port (default 8545)
[remixd ] -h, --help output usage information
[remixd ] [WARN] Any application that runs on your computer can potentially read from and write to all files in the directory.
[remixd ] [WARN] Symbolinc links are not forwarded to Remix IDE
[remixd ]
[remixd ] [WARN] Symbolic link modification not allowed : ./contracts | /Users/dracarys/Documents/Ethereum/browser-solidity/contracts
[remixd ] Shared folder : ./contracts
[remixd ] Mon Feb 05 2018 09:35:05 GMT+0800 (CST) Remixd is listening on 127.0.0.1:65520
[watch ] WS server listening on 49815
这时打开浏览器,在地址栏中输入:http://127.0.0.1:8080 即可。

界面介绍
Remix 界面入下图所示:

Remix IDE

如果您熟悉编程,接触过很多IDE,那么 Remix 的界面你一定也不陌生,所以你可以跳过该部分,对 Remix 的理解不会受到任何影响。

下面是对上图中五个功能区域的简单介绍:

红色 工具栏,这里可以进行新建文件、打开文件,发布到Github、向另一个实例拷贝和建立本地连接等操作;
橙色 文件导航区,在这里可以分常方便地在各个文件间进行切换;
黄色 代码编辑区,可以点击上方的+-对代码文字进行放大和缩小,还可以单击上方的《、》符号隐藏左右边栏;
绿色 信息输出区,这里可以看到代码的输出结果和编译信息,还可以通过该区域上方的下拉列表对信息进行过滤,和搜索;
紫色 属性编辑区,该区域有六个分页,分别是:Compile、Run、Setting、Analysis、Debug、Support。下面我们会着重介绍区域的设置。
功能介绍
前四个区域没什么好介绍的,大家只要上手简单操作一下就能明白。这里我们着重介绍下区域5,属性编辑区。这里我么只介绍Setting、Run、Compile、Debug 四个个分页,剩余两个分页功能非常直观,如果不是理解建议大家自行查询,不再赘述。

Setting IDE设置
Setting界面如下图所示:

Setting

Solidity version 设置 Solidity 的版本,这个的版本必须高于或者与你在源码中指定的版本相同,否则可能会导致一些无法预料的行为,非常关键。这里建议大家选择名字较短的稳定版,以减少不必要的麻烦。

General setting 通用设置,这里可以设置以及文本断行,是否默认启用JavaScript VM,以及是否启用优化;

Theme 主题设置,没什么好介绍的,只有2个主题,选择一个自己喜欢的即可。

Plugin 插件,目前还处于Alpha阶段,如果不了解,请不要更改。(我就是那个不了解的,还望各位大牛指点)

Run 运行设置
Run界面如下图所示:

Run

红色区域
Environment 运行环境选择,默认为本地 JavaScript VM,Web3 Provider 用于连接指定的虚拟机服务,可以用来本地测试或者小范围的局域网测试。还有一个 Injected Web3 功能暂时不明,望高人告知。
Account 账户,默认的 JavaScript VM 提供了 5 个虚拟账户,每个账户有100 ether,如果连接到 Web3 Provider,那么这里会显示你在这台 Provider 上的账户。
Gas limit Gas上限,并不是越大越好,当然也不能太小,否则会影响交易。有关Gas的进一步信息,你可以访问这里Gas and ether
Value 即Gas price,输入后不要忘记在右侧的下拉列表中设置价格单位。如果你不熟悉 Wei 和 Ether 之间的换算可以参见下表
单位 换算率 Wei
wei 1 1
Kwei (babbage) 1e3 wei 1,000
Mwei (lovelace) 1e6 wei 1,000,000
Gwei (shannon) 1e9 wei 1,000,000,000
microether (szabo) 1e12 wei 1,000,000,000,000
milliether (finney) 1e15 wei 1,000,000,000,000,000
ether 1e18 wei 1,000,000,000,000,000,000
橙色区域
选择合约 如果你有多个合约,那么可以在这里选择运行那个合约
Create 有些合约有初始值,那么可以在这里设置,然后在点击 Create 按钮,成功后才会出现绿色区域。
At Address 从指定的地址加载一个已经存在的合约,加载成功后会出现在绿色区域内
黄色区域
暂时不明,待补充。

绿色区域
只有成功运行才会显示该区域,在这里你可以对自己编写的合约各个方法进测试。例如上图,这里我只写了一个 pay 函数,那么就可以在这里输入数值,然后点击 pay 来查看输出结果,以便验证该函数是否运行正常。

Compile 编译设置
Compile 界面如下图所示:

Compile

Start to compile 点击该按钮即开始编译,这里我们勾选 auto compile,这样就不用我们每次都点了,而且还能及时帮我们发现语法上的错误。

选择合约 可以在多个合约间进行切换,注意,这里只有编译才能显示,如果未编译,这里将为空。

Detail 点击可以查看上一步已选择合约的详细信息(如下图)
Detail

Publish on Swarm 发布到 Swarm?还不是很理解,猜测:跟选择的运行环境有关,发不到官方的测试链或者正式链?望大牛提点。
Debug
Debug 界面如下图所示:

Debug

最后
IDE的某些功能会随着使用逐渐加深了解,所以请不要在IDE的熟悉上花费太多时间,能上手操作即可,就像小时候我们学说话一样,相信你我都绝不是在能说绕口令之后才叫爸爸妈妈的。

未完待续!

转载于:https://www.cnblogs.com/xiaocongcong888/p/9389810.html

Browser-Solidity的本地安装及使用介绍相关推荐

  1. 【2022软件创新实验室暑假集训】Java环境安装与基础介绍

    Java环境安装与基础介绍 文章目录 文章目录 Java环境安装与基础介绍 文章目录 Java 简介 主要特性 关于语言学习的选择 Python Java Go&Rust Java环境配置 J ...

  2. SQL Server 2016 AlwaysOn 安装及配置介绍

    SQL Server 2016  AlwaysOn 安装及配置介绍 Always On 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案. SQL Server 2012 ...

  3. cygwin用命令安装软件_Cygwin本地安装版

    cygwin本地安装版离线即可安装,使用十分方便,适合linux.安卓平台软件开发与测试时使用,倍受行业人员和学者们的青睐. http://www.itmop.com/downinfo/13002.h ...

  4. nodejs全局安装和本地安装的区别

    作者:白树 转载自http://www.cnblogs.com/PeunZh... 上一篇文章<npm 常用命令详解>主要是整理了最常使用的npm命令及相关介绍,其中有提到全局安装(npm ...

  5. Python2.7本地安装numpy包

    python的pip工具可以很方便的在线安装各种第三方包,但有时也需要离线的方式通过本地包来安装,比如公司内网环境下,下面就介绍一下如何通过本地安装的方式安装numpy包 1. python官网下载p ...

  6. 本地安装UCSC基因组浏览器

    UCSC基因组浏览器在大规模高通量数据的可视化和比较分析研究中发挥着重要的作用.拥有了本地浏览器,就可以对自己的测序数据进行更深入的分析和共享使用.本文详细介绍了如何一步步在本地安装.配置.高级使用U ...

  7. 本地在线安装mysql_本地安装MySql服务

    本地安装MySql服务 这里,简单介绍在本地服务器上安装MySql服务 ## 系统 CentOS 7.4 , 64位 ##声明 1.这是我们开发人员在华为云服务器进行测试成功可用的mysql安装命令组 ...

  8. aws redshift_从本地安装的IDE访问AWS Redshift

    aws redshift This article gives you an overview of configuring the AWS Redshift cluster to use it fr ...

  9. 自动化运维工具ansible(安装与模块介绍)

    自动化运维工具ansible(安装与模块介绍) 一.ansible运维工具概述 (一).ansible的特点 (二).ansible的原理 (三)ansible的优点 二.安装ansible 三.an ...

  10. Hexo历险记之三本地安装Hexo

    前言 Hexo本身就是一个很简便却不简单的博客,前提是让我们除去恼人的模块依赖. 时隔四年,重启Hexo历险计划! 先附上我现在使用的Hexo版本及依赖,可以给大家做个参考. {"name& ...

最新文章

  1. 关于SQL Server中索引使用及维护简介
  2. 用JS制作一个信息管理平台完整版
  3. MSDN中Enumerating All Processes枚举所有进程事例编译错误解析办法
  4. Json.NET 不再有超过120个依赖项
  5. spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)
  6. 要毕业了,我应该做点啥?
  7. 文献检索与论文写作书籍(一)
  8. 100人每人100元每次一人分1元给另一人问题matalb 求解
  9. SQL将金额转换为汉子
  10. mysql 中文排序_mysql如何按照中文排序解决方案
  11. Linux Shell笔记4 正则表达式
  12. 雪球:如果让你选择一本影响你一生的好书,你会选择哪一本
  13. (八)2005年我的第一次软件行业创业,烧掉30万、2年时间打水漂的惨痛教训
  14. java开发项目心得体会
  15. 苹果妙控鼠标二代(Magic Mouse 2 )如何连接到 Window 10系统
  16. 关于Shine-hale
  17. matlab预测误差,Matlab的神经网络预测误差比较大,该怎样调整
  18. 为什么1//0.1等于9.0,而1//-0.1=-10?
  19. 解耦、削峰、异步的理解
  20. Unity好用插件集合1

热门文章

  1. 论文中常用的对word页眉页脚的操作
  2. 基于Linux通用GPIO接口的操作函数
  3. codeforces 268E Playlist(数学期望)
  4. 【胶囊网络-CapsNet】胶囊网络-CapsNet原理
  5. OSPF的6种LSA
  6. 扣哒世界python CS1 竞技场代码
  7. java 字符补位_JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码...
  8. [读书]~偷得浮生半日闲
  9. What the f*ck Python!
  10. html 页面文字不能复制粘贴,网页文字无法复制粘贴 复制粘贴不能用