1. 程式人生 > >安裝Solidity編譯器-Solidity官方文件(2)

安裝Solidity編譯器-Solidity官方文件(2)

image

寫在前面:HiBlock區塊鏈社群成立了翻譯小組(以太坊中文社群),翻譯區塊鏈相關的技術文件及資料,本文為Solidity官方文件翻譯的第二部分《安裝Solidity編譯器》,特釋出出來邀請solidity愛好者、開發者做公開的審校,您可以新增微信baobaotalk_com,驗證輸入“solidity”,然後將您的意見和建議傳送給我們,也可以在文末“留言”區留言,有效的建議我們會採納及合併進下一版本,同時將送一份小禮物給您以示感謝。

1

版  本

Solidity的版本遵循語義化版本原則,作為釋出版本的補充, 每日開發構建 (nightly development builds)也是可用的。

這個每日開發構建不保證能正常工作,儘管盡了最大的努力,但仍可能包含未記錄的和/或重大的改動。我們推薦使用最新的釋出版本。下面的包安裝程式將使用最新發布版本。

2

Remix

我們推薦使用 Remix 來開發簡單合約和快速學習 Solidity。

Remix 可線上使用,而無需安裝任何東西。如果你想離線使用,可按 

的頁面說明下載 zip 檔案來使用。 該頁面有進一步詳細說明如何安裝 Solidity 命令列編譯器到你計算機上。如果你剛好要處理大型合約,或者需要更多的編譯選項,那麼你應該選擇使用命令列編譯器 solc。

3

npm / Node.js

使用 npm

 可以便捷地安裝Solidity編譯器solcjs。但該 solcjs 程式的功能相對於本頁下面的所有其他選項都要少。在 使用命令列編譯器 一章中,我們假定你使用的是完整功能的編譯器。 所以,如果你是從 npm 安裝 solcjs ,就此打住,直接跳到 solc-js 去了解。

注意: solc-js 是利用 Emscripten 從 C++ 版的 solc 跨平臺編譯為 JavaScript 的,因此,可在 JavaScript 專案中使用 solcjs(如同 Remix)。 具體介紹請檢視 solc-js 程式碼庫。

npm install -g solc

image

4

Docker

我們為編譯器提供了最新的docker構建。 stable 倉庫裡的是已釋出的版本,nightly 倉庫則是在開發分支中的帶有不穩定變更的版本。

docker run ethereum/solc:stable solc –version

目前,docker 映象只含有 solc 的可執行程式,因此你需要額外的工作去把原始碼和輸出目錄連線起來。

5

二進位制包

可在

solidity/releases <https://github.com/ethereum/solidity/releases>_

下載 Solidity 的二進位制安裝包。

對於 Ubuntu ,我們也提供 PPAs 。通過以下命令,可獲取最新的穩定版本:

sudo add-apt-repository ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install solc

當然,你也可安裝嚐鮮的開發者版本:

sudo add-apt-repository ppa:ethereum/ethereum

sudo add-apt-repository ppa:ethereum/ethereum-dev

sudo apt-get update

sudo apt-get install solc

同時,也提供可安裝`所有支援的Linux版本

通過以下命令,可獲取最新的穩定版本:

sudo snap install solc

或者,如果你想測試 develop 分支下的最新變更,可通過如下方式安裝開發者版本:

sudo snap install solc –edge

同樣,Arch Linux 也有提供安裝包,但僅限於最新的開發者版本:

pacman -S solidity

在寫本文時,Homebrew 上還沒有提供預構建的二進位制包(因為我們從 Jenkins 遷移到了 TravisCI )。 我們將盡快提供 homebrew 下的二進位制安裝包,但至少從原始碼構建的方式還是行得通的:

brew update

brew upgrade

brew tap ethereum/ethereum

brew install solidity

brew linkapps solidity

如果你需要特定版本的 Solidity ,你需要從 Github 上安裝一個 Homebrew formula。 你可查閱

solidity.rb commits on Github 的提交記錄,去尋找包含solidity.rb檔案改動的特殊提交。然後使用brew進行安裝:

brew unlink solidity

 Install 0.4.8

Gentoo Linux 下也提供了安裝包,可使用emerge進行安裝:

emerge dev-lang/solidity

6

從原始碼編譯

克隆程式碼庫

執行以下命令,克隆原始碼:

cd solidity

如果你想參與 Solidity 的開發, 你可分叉 Solidity 原始碼庫後,用你個人的分叉庫作為第二遠端源:

cd solidity

git remote add personal [email protected]:

[username]/solidity.git

Solidity 有 Git 子模組,需確保完全載入它們:

git submodule update –init –recursive

先決條件 - macOS

在 macOS 中,需確保有安裝最新版的 Xcode, Xcode 包含 Clang C++ 編譯器, 而 Xcode IDE 和其他蘋果開發工具是 OS X 下編譯 C++ 應用所必須的。 如果你是第一次安裝 Xcode 或者剛好更新了 Xcode 新版本,則在使用命令列構建前,需同意 Xcode 的使用協議:

sudo xcodebuild -license accept

Solidity 在 OS X 下構建,必須 安裝 Homebrew 包管理器來安裝依賴。 如果你想從頭開始,這裡是 解除安裝 Homebrew 的方法。

先決條件 - Windows

在Windows下構建Solidity,需下載的依賴軟體包:

image

外部依賴

在 macOS、Windows和其他 Linux 發行版上,有一個指令碼可以“一鍵”安裝所需的外部依賴庫。本來是需要人工參與的多步操作,現在只需一行命令:

./scripts/install_deps.sh

Windows 下執行:

scripts \ install_deps.bat

命令列構建

確保你已安裝外部依賴(見上面)

Solidity 使用 CMake 來配置構建。Linux、macOS 和其他 Unix系統上的構建方式都差不多:

mkdir build

cd build

cmake .. && make

也有更簡單的:

note: 將安裝 solc 和 soltest 到 usr**/local/**bin 目錄

./**scripts/**build.sh

對於 Windows 執行:

mkdir build

cd build

cmake -G “Visual Studio 14 2015 Win64” ..

這組指令的最後一句,會在 build 目錄下建立一個 solidity.sln 檔案,雙擊後,預設會使用 Visual Studio 開啟。我們建議在VS上建立 RelWithDebugInfo 配置檔案。

或者用命令建立:

cmake –build . –config RelWithDebInfo

7

CMake引數

如果你對 CMake 命令選項有興趣,可執行 cmake .. -LH 進行檢視。

8

版本號字串詳解

Solidity 版本名包含四部分:

  • 版本號

  • 預釋出版本號,通常為 

    develop.YYYY.MM.DD 或者 nightly.YYYY.MM.DD

  • 以 commit.GITHASH 格式展示的提交號

  • 由若干條平臺、編譯器詳細資訊構成的平臺標識

如果本地有修改,則 commit 部分有後綴 .mod。

這些部分按照 Semver 的要求來組合, Solidity 預釋出版本號等價於 Semver 預釋出版本號, Solidity 提交號和平臺標識則組成 Semver 的構建元資料。

發行版樣例:

0.4.8+commit.60cc1668.Emscripten.clang

預釋出版樣例:

0.4.9-nightly.2017.1.17+commit.6ecb4aa3.Emscripten.clang

9

版本資訊詳情

在版本釋出之後,補丁版本號會增加,因為我們假定只有補丁級別的變更會在之後發生。當變更被合併後,版本應該根據semver和變更的劇烈程度進行調整。最後,發行版本總是與當前每日構建版本的版本號一致,但沒有 prerelease 指示符。

例如:

0. 0.4.0 版本釋出

1. 從現在開始,每晚構建為 0.4.1 版本

2. 引入非破壞性變更 —— 不改變版本號

3. 引入破壞性變更 —— 版本跳躍到 0.5.0

4. 0.5.0 版本釋出

該方式與 version pragma 一起執行良好。

本文內容來源於HiBlock區塊鏈社群翻譯小組-以太坊中文社群,感謝全體譯者的辛苦工作。

:本文為solidity翻譯的第一部分《智慧合約概述》,特釋出出來邀請solidity愛好者、開發者做公開的審校,您可以新增微信baobaotalk_com,驗證輸入“solidity”,然後將您的意見和建議傳送給我們,也可在文末“留言”區留言,或通過原文連結訪問我們的Github。有效的建議我們會收納並及時改進,同時將送一份小禮物給您以示感謝。

image

點選“閱讀原文”即可檢視翻譯原文。

相關推薦

安裝Solidity編譯器-Solidity官方2

寫在前面:HiBlock區塊鏈社群成立了翻譯小組(以太坊中文社群),翻譯區塊鏈相關的技術文件及資料,本文為Solidity官方文件翻譯的第二部分《安裝Solidity編譯器》,特釋出出來邀請solidity愛好者、開發者做公開的審校,您可以新增微信baoba

[翻譯]:Cinemachine 官方0

目錄 Overview : Installation and Getting Started :安裝並開始 User Guide :使用者指南 What is Cinemachine? : 什麼是Cinemachine? Cinemachine is a suite of ‘smart

Android [Camera 原始碼] 建立和提交請求(Request Creation) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con

Android [Camera 原始碼] 錯誤和資訊流處理(Errors and Streams) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con

Android [Camera 原始碼] 輸出流和剪裁(Output and Cropping) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con

Android [Camera 原始碼] 3A 模式和狀態轉換(3A Modes and State) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con

Android [Camera 原始碼] 元資料和控制元件(Metadata and Controls) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con

Android [Camera 原始碼] 相機 HAL3(Camera3) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con

Android [Camera 原始碼] HAL 子系統(HAL Subsystem) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con

Android [Camera 原始碼] 概述(overview) Google官方

Google原始碼網地址連結:https://source.android.com/devices/camera 看了幾天Camera HAL的實現以及底層的camera驅動/binder驅動,之間的Camera Binder傳輸,訊息Event傳送機制,搞得頭暈腦脹,每個模組都涉及很多方面的知

Adopt Open JDK官方

編譯過程效能優化的命令列引數 AdoptOpenJDK wiki的一個連結,提供了幾個怎麼提高編譯過程效能的例子。 編譯 jcov 專案首頁(專案資訊, 編譯指南, 其他…) 原始碼: 快速編譯指南 $ hg clone http://hg.openjdk.java.net/code

Adopt Open JDK官方OpenJDK 專案介紹

原文地址 譯者:bobwenx  ([email protected]) 8.OpenJDK 專案介紹 8.1 Penrose Penrose 專案提供jigsaw 與 OSGi 環境的互操作性。 因為原Jigsaw JDK8 EA Build 已經停止開發,Penrose

ArcGIS API For JavaScript官方之事件處理

        ArcGIS API For JavaScript是事件驅動的API。事件發生在您與JavaScript應用程式互動時,載入頁面、單擊滑鼠、執行任務和許多其他操作都會觸發事件。您可以通過監聽事件並編寫響應事件的程式碼使應用程式具有互動性,這就是所謂的“處理”事

Android Data Binding Library 官方

Data Binding Library (資料繫結庫),旨在減少繫結應用程式邏輯和佈局所需的一些耦合性程式碼 最低支援Android 2.1 (API Level 7) 構建環境 使用gradle外掛1.5-alpha1以上 在build.gr

Nginx配置2

roo ack 最大的 錯誤頁 請求頭 運行 定義 超時 rem 一、配置文件結構 1、全局塊:配置影響nginx全局的指令。一般有運行nginx服務器的用戶組,nginx進程pid存放路徑,日誌存放路徑,配置文件引入,允許生成worker process數等。 2、ev

Redis配置2SNAPSHOTTING快照/APPEND ONLY MODE追加

span mode 實戰 ssi ever write 數據完整性 數據安全 view redis.conf文件 1.Save a. save 秒鐘 寫操作次數 RDB是整個內存的壓縮過的Snapshot,RDB的數據結構,可以配置復合的快照觸發條件, 默認 是1分鐘內改

機器學習 Python scikit-learn 中文2教程目錄

與官方文件完美匹配的中文文件,請訪問 https://www.studyai.cn 與官方文件完美匹配的中文文件,請訪問 https://www.studyai.cn scikit-learn 教程 使用 scikit-learn 介紹機器學習 機器學習:問題設定 載入示例資

用python處理Excel2——用xlsxwriter模組寫xls/xlsx

本文主要總結一下如何使用xlsxwriter模組來自動化生成和處理Excel文件。 簡單用法demo # !/usr/bin/python # coding:utf-8 # xlsxwriter的基本用法 import xlsxwriter # 1

Kafka2----0.8.2- 基本介紹Getting Start

來源: 說明: 原文中某些專有名詞不做翻譯: kafka topic partition consumer producer server client high-level 1、開始 1.1 介紹kafka可提供分散式、分割槽的、可備份的日誌提交服務,同時也是設計

spark編譯官方翻譯版

原文地址:http://spark.apache.org/docs/latest/building-spark.html#building-a-runnable-distribution Building Apache Spark Apache Maven The Maven-based