安装Solidity

简介: 安装Solidity基于浏览器的Solidity如果你只是想尝试一个使用Solidity的小合约,你不需要安装任何东西,只要访问 基于浏览器的Solidity。

安装Solidity

基于浏览器的Solidity

如果你只是想尝试一个使用Solidity的小合约,你不需要安装任何东西,只要访问 基于浏览器的Solidity

如果你想离线使用,你可以保存页面到本地,或者从 http://github.com/chriseth/browser-solidity 克隆一个。

NPM / node.js

这可能安装Solidity到本地最轻便最省事的方法。

在基于浏览器的Solidity上,Emscripten提供了一个跨平台JavaScript库,把C++源码编译为JavaScript,同时也提供NPM安装包。

去安装它就可以简单使用。,

npm install solc

如何使用nodejs包的详细信息可以在代码库中找到.

二进制安装包

Ethereum.

包括Mix IDE的二进制Solidity安装包在Ethereum网站C++ bundle中下载。

从源码构建

在MacOS X、Ubuntu和其它类Unix系统中编译安装Solidity非常相似。这个指南开始讲解如何在每个平台下安装相关的依赖软件,然后构建Solidity。

MacOS X

系统需求:

  • OS X Yosemite (10.10.5)

  • Homebrew

  • Xcode

安装Homebrew:

  brew update
    brew install boost --c++11             # 这需要等待一段时间
    brew install cmake cryptopp miniupnpc leveldb gmp libmicrohttpd libjson-rpc-cpp 
    # 仅仅安装Mix IDE和Alethzero
    brew install xz d-bus
    brew install llvm --HEAD --with-clang 
    brew install qt5 --with-d-bus          # 如果长时间的等待让你发疯,那么添加--verbose输出信息会让你感觉更好。

Ubuntu 系统

下面是在最新版Ubuntu系统上编译安装Solidity的指南。最佳的支持平台是2014年11月发布的64位Ubuntu 14.04,至少需要2GB内存。我们所有的测试都是基于此版本,当然我们也欢迎其它版本的测试贡献者。

安装依赖软件:

在你从源码编译之前,你需要准备一些工具和依赖软件。

首先,升级你的代码库。Ubuntu主代码库不提供所有的包,你需要从Ethereum PPA和LLVM获取。

注意

Ubuntu 14.04的用户需要使用:sudo apt-add-repository ppa:george-edison55/cmake-3.x获取最新版本的cmake。

现在加入其它的包:

    sudo apt-get -y update
    sudo apt-get -y install language-pack-en-base
    sudo dpkg-reconfigure locales
    sudo apt-get -y install software-properties-common
    sudo add-apt-repository -y ppa:ethereum/ethereum
    sudo add-apt-repository -y ppa:ethereum/ethereum-dev
    sudo apt-get -y update
    sudo apt-get -y upgrade

对于Ubbuntu 15.04(Vivid Vervet)或者更老版本,使用下面的命令获取开发相关的包:

sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcryptopp-dev libjson-rpc-cpp-dev libmicrohttpd-dev libjsoncpp-dev libedit-dev libz-dev

对于Ubbuntu 15.10(Wily Werewolf)或者更新版本,使用下面的命令获取开发相关的包:

sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcryptopp-dev libjsonrpccpp-dev libmicrohttpd-dev libjsoncpp-dev libedit-dev libz-dev

不同版本使用不同获取命令的原因是,libjsonrpccpp-dev已经在最新版的Ubuntu的通用代码仓库中。

编译

如果你只准备安装solidity,忽略末尾Alethzero和Mix的错误。

    git clone --recursive https://github.com/ethereum/webthree-umbrella.git
    cd webthree-umbrella
    ./webthree-helpers/scripts/ethupdate.sh --no-push --simple-pull --project solidity 
    # 更新Solidity库
    ./webthree-helpers/scripts/ethbuild.sh --no-git --project solidity --all --cores 4 -DEVMJIT=0 
    # 编译Solidity及其它
    # 在OS X系统加上DEVMJIT将不能编译,在Linux系统上则没问题  

如果你选择安装Alethzero和Mix:

git clone --recursive https://github.com/ethereum/webthree-umbrella.git
    cd webthree-umbrella && mkdir -p build && cd build
    cmake ..

如果你想帮助Solidity的开发,你需要分支(fork)Solidity并添加到你的私人远端分支:

    cd webthree-umbrella/solidity
    git remote add personal git@github.com:username/solidity.git

注意webthree-umbrella使用的子模块,所以solidity是其自己的git代码库,但是他的设置不是保存在 .git/config, 而是在webthree-umbrella/.git/modules/solidity/config.

如果你希望高效的学习以太坊DApp开发,可以访问汇智网提供的最热门在线互动教程:

其他更多内容也可以访问这个以太坊博客

转自:
https://github.com/twq0076262/solidity-zh/blob/master/installing-solidity.md

相关文章
深入理解 Solidity
深入理解 Solidity 此节将帮助你深入理解Solidity,如果有遗漏,请和我们联系Gitter或者在Githhub上发pull request Layout of a Solidity Source File ...
980 0
|
安全
【Solidity】Solidity by Example
投票 以下合同相当复杂,但展示了很多Solidity的功能。 实行投票合同。 当然,电子投票的主要问题是如何将投票权分配给正确的人,以及如何防止操纵。 我们不会在这里解决所有问题,但至少我们将会展示如何进行委托投票,以便计票同时自动完全透明。
1252 0
|
IDE 开发工具 git
【Solidity】本地安装Solidity并运行开发环境
本地环境 xiaoyu@LIXIAOYUdeMBP.com npm -v 5.3.0 ~ [17:45:03] xiaoyu@LIXIAOYUdeMBP.com node -v v8.4.0 安装 我们选择最简单的npm安装的方式,在这里加上-g进行全局安装。
2297 0
|
JavaScript 测试技术
【Solidity】Solidity概述
Solidity是一种面向合同的高级语言,其语法类似于JavaScript,它旨在将目标设定为Ethereum Virtual Machine(EVM)。 Solidity是静态类型的,支持继承,库和复杂的用户定义类型等功能。
1359 0
|
存储 Oracle 关系型数据库
【Solidity】3.类型 - 深入理解Solidity
索引 【Solidity】1.一个Solidity源文件的布局 【Solidity】2.合约的结构体 【Solidity】3.类型 【Solidity】4.单位和全局可变量 【Solidity】5.表达式和控制结构 【Solidity】6. 合约 【Solidity】7. 部件 【Solidity】8. 杂项 类型 Solidity是一种静态类型的语言,这意味着每个变量(州和地方)的类型需要被指定的(或至少已知的 - 见下文型扣)在编译时。
1562 0
|
存储 JavaScript 前端开发
Solidity 开发环境搭建
Solidity 开发环境搭建
439 0
Solidity 开发环境搭建
|
7月前
solidity 学习
solidity 学习
|
存储 前端开发 JavaScript
【Solidity】6. 合约 - 深入理解Solidity
索引 【Solidity】1.一个Solidity源文件的布局 【Solidity】2.合约的结构体 【Solidity】3.类型 【Solidity】4.单位和全局可变量 【Solidity】5.表达式和控制结构 【Solidity】6. 合约 【Solidity】7. 部件 【Solidity】8. 杂项 合约 Solidity的合约类似于面向对象语言的类。
1638 0
【Solidity】1.一个Solidity源文件的布局 - 深入理解Solidity
索引 【Solidity】1.一个Solidity源文件的布局 【Solidity】2.合约的结构体 【Solidity】3.类型 【Solidity】4.单位和全局可变量 【Solidity】5.表达式和控制结构 【Solidity】6. 合约 【Solidity】7. 部件 【Solidity】8. 杂项 一个Solidity源文件的布局 源文件可以包含任意数量的合约定义,include指令和pragma伪指令。
1303 0
|
存储 JSON 数据格式
【Solidity】8. 杂项 - 深入理解Solidity
索引 【Solidity】1.一个Solidity源文件的布局 【Solidity】2.合约的结构体 【Solidity】3.类型 【Solidity】4.单位和全局可变量 【Solidity】5.表达式和控制结构 【Solidity】6. 合约 【Solidity】7. 部件 【Solidity】8. 杂项 杂项 存储中状态变量的布局 静态大小变量(除映射和动态大小的数组类型的所有内容)在存储连续布置从需要小于32个字节被打包成一个单一的存储槽是否可能位置0多个项目开始,根据下面的规则: 存储槽中的第一个项目被存储为低阶对齐。
2106 0

热门文章

最新文章