Skip to content

Latest commit

ย 

History

History
345 lines (220 loc) ยท 13.4 KB

installing-solidity.rst

File metadata and controls

345 lines (220 loc) ยท 13.4 KB
.. index:: ! installing

Solidity ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์น˜ํ•˜๊ธฐ

๋ฒ„์ „ ๊ด€๋ฆฌ

Solidity ๋ฒ„์ „ ๊ด€๋ฆฌ๋Š” semantic versioning ๋ฅผ ๋”ฐ๋ฅด๋ฉฐ nightly development builds ๊ฐ€ ๋ฐฐํฌ๋  ์ˆ˜ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. nightly builds๋Š” ์ž‘๋™์ด ๋ณด์žฅ๋˜์ง€ ์•Š๊ณ  ์ตœ์„ ์˜ ๋…ธ๋ ฅ์„ ๋‹คํ•˜๊ฒ ์ง€๋งŒ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ตœ์‹  ๋ฐฐํฌํŒ์„ ์‚ฌ์šฉํ•˜๊ธธ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ํŒจํ‚ค์ง€ ์ธ์Šคํ†จ๋Ÿฌ๋Š” ์ตœ์‹ ํŒ์„ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Remix

๊ฐ„๋‹จํ•œ ์ปจํŠธ๋ž™ํŠธ ์ž‘์„ฑ๊ณผ ๋น ๋ฅธ Solidity ํ•™์Šต์—๋Š” Remix๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

Remix ์˜จ๋ผ์ธ์— ์ ‘์†ํ•˜์„ธ์š”, ์•„๋ฌด๊ฒƒ๋„ ์„ค์น˜ ํ•  ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท ์ ‘์†์ด ์•ˆ๋˜๋Š” ํ™˜๊ฒฝ์—์„œ Remix๋ฅผ ์‚ฌ์šฉํ•˜๊ธธ ์›ํ•œ๋‹ค๋ฉด, https://github.com/ethereum/remix-live/tree/gh-pages ๋กœ ๊ฐ€์„œ .zip ํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›์œผ์„ธ์š”.

์ด ํŽ˜์ด์ง€์˜ ๋‹ค์Œ ํ•ญ๋ชฉ๋“ค์€ ์ปค๋งจ๋“œ๋ผ์ธ Solidity ์ปดํŒŒ์ผ๋Ÿฌ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋‚ด์šฉ์„ ์—ด๊ฑฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํฐ ๊ทœ๋ชจ์˜ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ์ž‘์—…ํ•˜๊ฑฐ๋‚˜ ๋” ๋งŽ์€ ํŽธ์ง‘ ์˜ต์…˜์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ปค๋งจ๋“œ๋ผ์ธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

npm / Node.js

Solidity ์ปดํŒŒ์ผ๋Ÿฌ์ธ solcjs ๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๊ฐ„ํŽธํ•œ npm ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. solcjs ํ”„๋กœ๊ทธ๋žจ์€ ํ˜„ ํŽ˜์ด์ง€ ์•„๋ž˜์— ์„ค๋ช… ๋œ ์ปดํŒŒ์ผ๋Ÿฌ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋” ์ ์€ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. :ref:`commandline-compiler` ๋ฌธ์„œ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ปดํŒŒ์ผ๋Ÿฌ solc ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. solcjs ์˜ ์‚ฌ์šฉ๋ฒ•์€ ์ €์žฅ์†Œ ์— ๋ฌธ์„œํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์„: solc-js ํ”„๋กœ์ ํŠธ๋Š” Emscripten์„ ์‚ฌ์šฉํ•˜๋Š” C++ solc ์—์„œ ํŒŒ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. solc-js์™€ Emscripten๋Š” ๋™์ผํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. solc-js ๋Š” Javascript ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: Remix). ์ž์„ธํ•œ ๋‚ด์šฉ์€ solc-js ์ €์žฅ์†Œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

npm install -g solc

Note

์‹คํ–‰๊ฐ€๋Šฅํ•œ ์ปค๋งจ๋“œ๋ผ์ธ์˜ ์ด๋ฆ„์€ solcjs ์ž…๋‹ˆ๋‹ค.

solc ์˜ ๋ช…๋ น์–ด๊ฐ€ solcjs ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋“ฏ์ด solcjs ์˜ ์ปค๋งจ๋“œ๋ผ์ธ ์˜ต์…˜์€ solc ๊ทธ๋ฆฌ๊ณ  geth ๊ฐ™์€ ๋„๊ตฌ๋“ค์—์„œ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Docker

์šฐ๋ฆฌ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํฌํ•จ๋œ ์ตœ์‹  Docker ๋นŒ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. stable ์ €์žฅ์†Œ์—๋Š” ๋ฐฐํฌ๋œ ๋ฒ„์ „์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ nightly ์ €์žฅ์†Œ์—๋Š” ์ž ์žฌ์ ์œผ๋กœ ๋ถˆ์•ˆ์ •ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜์˜ ๋ฒ„์ „์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

docker run ethereum/solc:stable --version

ํ˜„์žฌ, Docker ์ด๋ฏธ์ง€์—๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ์‹คํ–‰ ํŒŒ์ผ๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค, ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์†Œ์Šค์™€ ์ถœ๋ ฅ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€

Solidity ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€๋Š” solidity/releases ์—์„œ ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Ubuntu์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ PPA๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •๋œ ์ตœ์‹  ๋ฒ„์ „์€ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ snap package ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€๋Š” ์ง€์›๋˜๋Š” ๋ชจ๋“  Linux ๋ฐฐํฌํŒ ์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. solc์˜ ์•ˆ์ •๋œ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์„ธ์š”:

sudo snap install solc

์ตœ์‹  ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํฌํ•จ๋œ Solidity์˜ ์ตœ์‹  ๊ฐœ๋ฐœ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ์„ ๋”ฐ๋ฅด์„ธ์š”:

sudo snap install solc --edge

๊ฐœ๋ฐœ ์ค‘์ธ ์ตœ์‹  ๋ฒ„์ „๋ฟ์ด์ง€๋งŒ Arch Linux ์—ญ์‹œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

pacman -S solidity

์šฐ๋ฆฌ๋Š” Homebrew๋ฅผ ํ†ตํ•ด Solidity ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ build-from-source ๋ฒ„์ „์œผ๋กœ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. pre-built bottles ๋Š” ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

brew update
brew upgrade
brew tap ethereum/ethereum
brew install solidity

Solidity์˜ ํŠน์ • ๋ฒ„์ „์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๊นƒํ—ˆ๋ธŒ์—์„œ ์ง์ ‘ Homebrew formula๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊นƒํ—ˆ๋ธŒ์˜ solidity.rb ์ปค๋ฐ‹ ๋‚ด์—ญ ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

solidity.rb ์˜ ํŠน์ • ์ปค๋ฐ‹์˜ raw file ๋งํฌ๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ํžˆ์Šคํ† ๋ฆฌ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€์„ธ์š”.

brew ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค:

brew unlink solidity
# Install 0.4.8
brew install https://raw.githubusercontent.com/ethereum/homebrew-ethereum/77cce03da9f289e5a3ffe579840d3c5dc0a62717/solidity.rb

Gentoo Linux ๋˜ํ•œ emerge ๋ฅผ ์ด์šฉํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” Solidity ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

emerge dev-lang/solidity

์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜๊ธฐ

ํ•„์ˆ˜ ์„ค์น˜ ํ•ญ๋ชฉ - Linux

Solidity๋ฅผ Linux์—์„œ ๋นŒ๋“œ ํ•˜๊ธฐ์œ„ํ•ด ๋‹ค์Œ ์˜์กด ํ•ญ๋ชฉ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

์†Œํ”„ํŠธ์›จ์–ด ์„ค๋ช…
Git for Linux Github์—์„œ ์†Œ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ปค๋งจ๋“œ๋ผ์ธ ํˆด

ํ•„์ˆ˜ ์„ค์น˜ ํ•ญ๋ชฉ - macOS

macOS์˜ ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ ์ตœ์‹  ๋ฒ„์ „์˜ `Xcode<https://developer.apple.com/xcode/download/>`_ ๊ฐ€ ์„ค์น˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” Clang C++ compiler, Xcode IDE ์™€ ๊ทธ ์™ธ OS X์—์„œ C++ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ์• ํ”Œ ๊ฐœ๋ฐœ๋„๊ตฌ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Xcode๋ฅผ ์ฒ˜์Œ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์ƒˆ ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด, ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ ๋นŒ๋“œํ•˜๊ธฐ ์ „ ๋ผ์ด์„ ์Šค์— ๋™์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

sudo xcodebuild -license accept

์™ธ๋ถ€ ์˜์กด ํ•ญ๋ชฉ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด OSX ๋นŒ๋“œ๋Š” Homebrew ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์—ฌ๊ธฐ Homebrew ์‚ญ์ œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์„ค์น˜ ํ•ญ๋ชฉ - Windows

Solidity์˜ Windows ๋นŒ๋“œ๋ฅผ ์œ„ํ•ด ์•„๋ž˜์˜ ์˜์กด ํ•ญ๋ชฉ๋“ค์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

์†Œํ”„ํŠธ์›จ์–ด ์„ค๋ช…
Git for Windows Github์—์„œ ์†Œ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ปค๋งจ๋“œ๋ผ์ธ ๋„๊ตฌ.
CMake ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋นŒ๋“œ ํŒŒ์ผ ์ƒ์„ฑ๊ธฐ.
Visual Studio 2017 Build Tools C++ ์ปดํŒŒ์ผ๋Ÿฌ
Visual Studio 2017 (Optional) C++ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ.

IDE๊ฐ€ ํ•˜๋‚˜ ๋ฟ์ด๊ณ , ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ์žˆ์œผ๋ฉด, Visual Studio 2017 Build Tools๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Visual Studio 2017์€ IDE์™€ ํ•„์š”ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ IDE๊ฐ€ ์—†๋Š” ์ƒํ™ฉ์—์„œ Solidity ๊ฐœ๋ฐœ์„ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, Visual Studio 2017์ด ๋ชจ๋“  setup์„ ์‰ฝ๊ฒŒ ํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ Visual Studio 2017 Build Tools๋‚˜ Visual Studio 2017์—์„œ ์„ค์น˜ํ•ด์•ผํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

  • Visual Studio C++ core features
  • VC++ 2017 v141 toolset (x86,x64)
  • Windows Universal CRT SDK
  • Windows 8.1 SDK
  • C++/CLI support

์ €์žฅ์†Œ ๋ณต์ œ

์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณต์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”:

git clone --recursive https://github.com/ethereum/solidity.git
cd solidity

Solidity ๊ฐœ๋ฐœ์„ ๋•๊ณ ์‹ถ๋‹ค๋ฉด, Solidity ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํฌํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ์ž์‹ ์˜ ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

git remote add personal [email protected]:[username]/solidity.git

์™ธ๋ถ€ ์˜์กด ํ•ญ๋ชฉ

macOS, Windows ์™ธ ์ˆ˜๋งŽ์€ Linux ๋ฐฐํฌํŒ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์™ธ๋ถ€ ์˜์กด ํ•ญ๋ชฉ์„ ์„ค์น˜ํ•˜๋Š” ๋„์šฐ๋ฏธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

./scripts/install_deps.sh

Windows์—์„  ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค:

scripts\install_deps.bat

์ปค๋งจ๋“œ๋ผ์ธ ๋นŒ๋“œ

** ๋นŒ๋“œํ•˜๊ธฐ ์ „ ์™ธ๋ถ€ ์˜์กด ํ•ญ๋ชฉ์„(์œ—๋ถ€๋ถ„ ์ฐธ์กฐ) ๋ฐ˜๋“œ์‹œ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.**

Solidity ํ”„๋กœ์ ํŠธ๋Š” ๋นŒ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด CMake๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋œ ๋นŒ๋“œ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ccache๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. CMake๊ฐ€ ์ž๋™์œผ๋กœ ccache๋ฅผ ์„ ํƒํ• ๊ฒƒ์ž…๋‹ˆ๋‹ค. Solidity ๋นŒ๋“œ๋Š” Linux, macOS ๋ฐ ๊ธฐํƒ€ Unix์—์„œ ๋งค์šฐ ์œ ์‚ฌํ•˜๊ฒŒ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค:

mkdir build
cd build
cmake .. && make

๋˜๋Š” ์กฐ๊ธˆ ๋” ์‰ฌ์šด ๋ฐฉ๋ฒ•:

.. code-blcok:: bash

    #์ฃผ์„: ์ด ๋ช…๋ น์–ด๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ solc์™€ soltest๋ฅผ usr/local/bin์— ์„ค์น˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    ./scripts/build.sh

Windows์—์„œ๋Š”:

mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" ..

์ด ๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๋กœ ํ•ด๋‹น ๋นŒ๋“œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— solidity.sln ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์„ ๋”๋ธ”ํด๋ฆญํ•˜๋ฉด Visual Studio๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Release ํ™˜๊ฒฝ์„ค์ •์„ ๋นŒ๋“œํ•˜๋Š” ๊ฑธ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” Windows ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ ์•„๋ž˜์™€๊ฐ™์ด ๋นŒ๋“œ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

cmake --build . --config Release

CMake ์˜ต์…˜

CMake ์˜ต์…˜์„ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด cmake .. -LH ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

STM Solvers

Solidity๋Š” SMT solvers์— ๋Œ€ํ•ด ๋นŒ๋“œ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹œ์Šคํ…œ์—์„œ ๋ฐœ๊ฒฌ๋˜๋ฉด ๋””ํดํŠธ๋กœ ์ˆ˜ํ–‰๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ solver๋Š” cmake ์˜ต์…˜์— ์˜ํ•ด ๋น„ํ™œ์„ฑํ™” ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์„ : ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋นŒ๋“œ ์‹คํŒจ์˜ ์ž ์žฌ์ ์ธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ํด๋”์—์„œ๋Š” ๋””ํดํŠธ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# Z3 SMT Solver ๋งŒ ๋น„ํ™œ์„ฑํ™”
cmake .. -DUSE_Z3=OFF

# CVC4 SMT Solver ๋งŒ ๋น„ํ™œ์„ฑํ™”
cmake .. -DUSE_CVC4=OFF

# Z3์™€ CVC4 ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™”
cmake .. -DUSE_CVC4=OFF -DUSE_Z3=OFF

๋ฒ„์ „ ๋ฌธ์ž์—ด ์ƒ์„ธํ•˜๊ฒŒ ๋ณด๊ธฐ

Solidity ๋ฒ„์ „ ๋ฌธ์ž์—ด์€ ๋„ค ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  • ๋ฒ„์ „ ์ˆซ์ž
  • pre-release ํƒœ๊ทธ, ๋Œ€๊ฐœ develop.YYYY.MM.DD ๋‚˜ nightly.YYYY.MM.DD ํ˜•ํƒœ๋ฅผ ์ง€๋‹˜
  • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์ปค๋ฐ‹ commit.GITHASH
  • ํ”Œ๋žซํผ ๋ฐ ์ปดํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•ญ๋ชฉ

๋กœ์ปฌ์—์„œ ์ˆ˜์ •๋œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด, ์ปค๋ฐ‹ ๋’ค์— .mod ๊ฐ€ ๋ถ™์Šต๋‹ˆ๋‹ค.

์ด ๋ถ€๋ถ„๋“ค์€ Semver(Semantic Versioning)์— ๋”ฐ๋ผ ํ•„์š”์— ์˜ํ•ด ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Solidity pre-release ํƒœ๊ทธ๋Š” Semver์˜ pre-release ํƒœ๊ทธ์™€ ๊ฐ™๊ณ  Solidity ์ปค๋ฐ‹ ๋ฐ ํ”Œ๋žซํผ์€ ๊ฒฐํ•ฉ๋˜์–ด Semver ๋นŒ๋“œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

release ์˜ˆ: 0.4.8+commit.60cc1668.Emscripten.clang.

pre-release ์˜ˆ: 0.4.9-nightly.2017.1.17+commit.6ecb4aa3.Emscripten.clang

๋ฒ„์ „ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ์ •๋ณด

๋ฆด๋ฆฌ์ฆˆ๊ฐ€ ์ผ์–ด๋‚œ ํ›„์—, ํŒจ์น˜ ๋ฒ„์ „์€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํ•ฉ์ณ์งˆ ๋•Œ, ๋ฒ„์ „์€ semver์™€ ๋ณ€๊ฒฝ ์ •๋„์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐฐํฌ๋Š” ํ•ญ์ƒ prerelease ํƒœ๊ทธ๋ฅผ ์ œ์™ธํ•œ ํ˜„์žฌ์˜ nightly build๋ฒ„์ „์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

์˜ˆ:

  1. 0.4.0๊ฐ€ ๋ฐฐํฌ๋œ๋‹ค
  2. ์ง€๊ธˆ๋ถ€ํ„ฐ nightly build๋Š” 0.4.1 ๋ฒ„์ „์ด๋‹ค
  3. ์–ด๋– ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์—†์„ ๊ฒฝ์šฐ - ๋ฒ„์ „์€ ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค
  4. ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์„ ๊ฒฝ์šฐ - ๋ฒ„์ „์€ 0.5.0์ด ๋œ๋‹ค
  5. 0.5.0๊ฐ€ ๋ฐฐํฌ๋œ๋‹ค

์ด ๋™์ž‘์€ :ref:`version pragma <version_pragma>` ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.