1. 程式人生 > >【Solidity】本地安裝Solidity並執行開發環境

【Solidity】本地安裝Solidity並執行開發環境

本地環境

xiaoyu@LIXIAOYUdeMBP.com➤ npm -v
5.3.0
❖  ~ [17:45:03]
xiaoyu@LIXIAOYUdeMBP.com➤ node -v
v8.4.0

安裝

我們選擇最簡單的npm安裝的方式,在這裡加上-g進行全域性安裝。

xiaoyu@LIXIAOYUdeMBP.com➤ npm install -g solc
npm ERR! code EINTEGRITY
npm ERR! sha1-gJpbElfHwgDhGoQbN36uwnRphTk= integrity checksum failed when using sha1
: wanted sha1-gJpbElfHwgDhGoQbN36uwnRphTk= but got sha1-p9IJ5VtXbNZJAi3mbGYWX3srvTg=. (685522 bytes) npm ERR! A complete log of this run can be found in: npm ERR! /Users/xiaoyu/.npm/_logs/2017-08-28T09_51_14_676Z-debug.log

報錯了。。。。

再來一次。。。。

xiaoyu@LIXIAOYUdeMBP.com➤ npm install -g solc
/usr/local/bin/solcjs -> /usr/local
/lib/node_modules/solc/solcjs + solc@0.4.16 added 65 packages in 39.97s

成功了,並且得到當前的版本號為0.4.16

[email protected]➤ solcjs --help
Usage: /usr/local/bin/solcjs [options] [input_file...]

選項:
  --version         顯示版本號                                            [布林]
  --optimize        Enable bytecode optimizer.                            [布林]
--bin Binary of the contracts in hex. [布林] --abi ABI of the contracts. [布林] --standard-json Turn on Standard JSON Input / Output mode. [布林] --output-dir, -o Output directory for the contracts. [字串] --help 顯示幫助資訊 [布林]

IDE

Remix是一個線上的IDE,來實現對Solidity的程式碼編寫和執行。

關聯到本地環境

點選左上角的第三個圖示,將IDE連線到本地的執行環境。

此功能允許與Remix的檔案系統進行互動。 連線完成後,共享資料夾將在本地主機下的檔案瀏覽器中可用
Remixd必須首先在本地計算機上執行。 有關詳細資訊,請參閱http://remix.readthedocs.io/en/latest/tutorial_remixd_filesystem.html
接受此對話方塊將啟動https://remix.ethereum.org/和本地檔案系統之間的會話ws://127.0.0.1:65520
請確保您的系統足夠安全(埠65520既不開啟也不轉發)。
將更新連線狀態。
此功能仍然是alpha,我們建議保留共享資料夾的副本。

下面安裝remixd

[email protected].com➤ npm install -g remixd
/usr/local/bin/remixd -> /usr/local/lib/node_modules/remixd/src/main.js

> websocket@1.0.24 install /usr/local/lib/node_modules/remixd/node_modules/websocket
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node
+ remixd@0.1.2
added 18 packages in 18.37s

如何使用

然後remixd -S <專案的絕對路徑>將啟動Remixd並共享給定的資料夾。
使用Remix IDE和Remixd之間的Websocket連線來共享該資料夾。
確保執行Remix的使用者對該資料夾具有讀/寫許可權。

Remixd可以為可以訪問本地主機上的TCP埠65520的任何應用程式提供對給定資料夾的完全讀寫訪問許可權

下載demo執行

[email protected]➤ git  clone https://github.com/ethereum/browser-solidity 
Cloning into 'browser-solidity'...
remote: Counting objects: 118711, done.
remote: Compressing objects: 100% (85/85), done.
remote: Total 118711 (delta 86), reused 95 (delta 59), pack-reused 118565
Receiving objects: 100% (118711/118711), 49.53 MiB | 119.00 KiB/s, done.
Resolving deltas: 100% (76111/76111), done.
❖  ~/solidity [18:33:27]
[email protected]➤ cd browser-solidity 
❖  ~/solidity/browser-solidity git:(master) [18:34:48]

❖  ~/solidity/browser-solidity git:(master) [18:34:48]
[email protected]➤ npm install
npm WARN prepublish-on-install As of [email protected]5, `prepublish` scripts are deprecated.
npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only.
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.

> [email protected]0.0.0 prepublish /Users/xiaoyu/solidity/browser-solidity
> mkdirp build; npm-run-all -ls downloadsolc build

[downloadsolc] 
[downloadsolc] > [email protected]0.0.0 downloadsolc /Users/xiaoyu/solidity/browser-solidity
[downloadsolc] > rimraf soljson.js; wget https://ethereum.github.io/solc-bin/soljson.js
[downloadsolc] 
[downloadsolc] --2017-08-29 10:38:24--  https://ethereum.github.io/solc-bin/soljson.js
[downloadsolc] Resolving ethereum.github.io... 151.101.73.147, 2a04:4e42:11::403
[downloadsolc] Connecting to ethereum.github.io|151.101.73.147|:443... connected.
[downloadsolc] HTTP request sent, awaiting response... 200 OK
[downloadsolc] Length: 6990024 (6.7M) [application/javascript]
[downloadsolc] Saving to: ‘soljson.js’
[downloadsolc] 
[downloadsolc]      0K .......... .......... .......... .......... ..........  0%  180K 38s
[downloadsolc]     50K .......... .......... .......... .......... ..........  1%  295K 30s
[downloadsolc]    100K .......... .......... .......... .......... ..........  2%  332K 27s
[downloadsolc]    150K .......... .......... .......... .......... ..........  2%  238K 27s
[downloadsolc]    200K .......... .......... .......... .......... ..........  3%  399K 25s
[downloadsolc]    250K .......... .......... .......... .......... ..........  4%  407K 23s
[downloadsolc]    300K .......... .......... .......... .......... ..........  5%  190K 24s
[downloadsolc]    350K .......... .......... .......... .......... ..........  5%  308K 24s
[downloadsolc]    400K .......... .......... .......... .......... ..........  6%  376K 23s
[downloadsolc]    450K .......... .......... .......... .......... ..........  7%  338K 22s
[downloadsolc]    500K .......... .......... .......... .......... ..........  8%  402K 22s
[downloadsolc]    550K .......... .......... .......... .......... ..........  8%  401K 21s
[downloadsolc]    600K .......... .......... .......... .......... ..........  9%  234K 21s
[downloadsolc]    650K .......... .......... .......... .......... .......... 10%  334K 21s
[downloadsolc]    700K .......... .......... .......... .......... .......... 10%  320K 20s
[downloadsolc]    750K .......... .......... .......... .......... .......... 11%  362K 20s
[downloadsolc]    800K .......... .......... .......... .......... .......... 12%  365K 20s
[downloadsolc]    850K .......... .......... .......... .......... .......... 13%  391K 19s
[downloadsolc]    900K .......... .......... .......... .......... .......... 13%  390K 19s
[downloadsolc]    950K .......... .......... .......... .......... .......... 14%  408K 19s
[downloadsolc]   1000K .......... .......... .......... .......... .......... 15%  372K 18s
[downloadsolc]   1050K .......... .......... .......... .......... .......... 16%  419K 18s
[downloadsolc]   1100K .......... .......... .......... .......... .......... 16%  286K 18s
[downloadsolc]   1150K .......... .......... .......... .......... .......... 17%  178K 18s
[downloadsolc]   1200K .......... .......... .......... .......... .......... 18%  303K 18s
[downloadsolc]   1250K .......... .......... .......... .......... .......... 19%  354K 18s
[downloadsolc]   1300K .......... .......... .......... .......... .......... 19%  309K 18s
[downloadsolc]   1350K .......... .......... .......... .......... .......... 20%  359K 17s
[downloadsolc]   1400K .......... .......... .......... .......... .......... 21%  331K 17s
[downloadsolc]   1450K .......... .......... .......... .......... .......... 21%  399K 17s
[downloadsolc]   1500K .......... .......... .......... .......... .......... 22%  263K 17s
[downloadsolc]   1550K .......... .......... .......... .......... .......... 23%  291K 17s
[downloadsolc]   1600K .......... .......... .......... .......... .......... 24%  358K 17s
[downloadsolc]   1650K .......... .......... .......... .......... .......... 24%  531K 16s
[downloadsolc]   1700K .......... .......... .......... .......... .......... 25%  339K 16s
[downloadsolc]   1750K .......... .......... .......... .......... .......... 26%  366K 16s
[downloadsolc]   1800K .......... .......... .......... .......... .......... 27%  356K 16s
[downloadsolc]   1850K .......... .......... .......... .......... .......... 27%  457K 15s
[downloadsolc]   1900K .......... .......... .......... .......... .......... 28%  333K 15s
[downloadsolc]   1950K .......... .......... .......... .......... .......... 29%  323K 15s
[downloadsolc]   2000K .......... .......... .......... .......... .......... 30%  439K 15s
[downloadsolc]   2050K .......... .......... .......... .......... .......... 30%  450K 14s
[downloadsolc]   2100K .......... .......... .......... .......... .......... 31%  149K 15s
[downloadsolc]   2150K .......... .......... .......... .......... .......... 32%  217K 15s
[downloadsolc]   2200K .......... .......... .......... .......... .......... 32%  207K 15s
[downloadsolc]   2250K .......... .......... .......... .......... .......... 33%  156K 15s
[downloadsolc]   2300K .......... .......... .......... .......... .......... 34%  295K 15s
[downloadsolc]   2350K .......... .......... .......... .......... .......... 35%  302K 15s
[downloadsolc]   2400K .......... .......... .......... .......... .......... 35%  267K 14s
[downloadsolc]   2450K .......... .......... .......... .......... .......... 36%  309K 14s
[downloadsolc]   2500K .......... .......... .......... .......... .......... 37%  258K 14s
[downloadsolc]   2550K .......... .......... .......... .......... .......... 38%  316K 14s
[downloadsolc]   2600K .......... .......... .......... .......... .......... 38%  210K 14s
[downloadsolc]   2650K .......... .......... .......... .......... .......... 39% 1.04K 87s
[downloadsolc]   2700K .......... .......... .......... .......... .......... 40% 16.8K 89s
[downloadsolc]   2750K .......... .......... .......... .......... .......... 41%  109K 87s
[downloadsolc]   2800K .......... .......... .......... .......... .......... 41%  156K 85s
[downloadsolc]   2850K .......... .......... .......... .......... .......... 42%  124K 83s
[downloadsolc]   2900K .......... .......... .......... .......... .......... 43%  125K 81s
[downloadsolc]   2950K .......... .......... .......... .......... .......... 43% 90.3K 79s
[downloadsolc]   3000K .......... .......... .......... .......... .......... 44%  117K 78s
[downloadsolc]   3050K .......... .......... .......... .......... .......... 45%  147K 76s
[downloadsolc]   3100K .......... .......... .......... .......... .......... 46% 83.0K 74s
[downloadsolc]   3150K .......... .......... .......... .......... .......... 46%  149K 72s
[downloadsolc]   3200K .......... .......... .......... .......... .......... 47%  179K 71s
[downloadsolc]   3250K .......... .......... .......... .......... .......... 48%  163K 69s
[downloadsolc]   3300K .......... .......... .......... .......... .......... 49%  113K 67s
[downloadsolc]   3350K .......... .......... .......... .......... .......... 49%  239K 66s
[downloadsolc]   3400K .......... .......... .......... .......... .......... 50%  125K 64s
[downloadsolc]   3450K .......... .......... .......... .......... .......... 51%  260K 62s
[downloadsolc]   3500K .......... .......... .......... .......... .......... 52%  184K 61s
[downloadsolc]   3550K .......... .......... .......... .......... .......... 52%  227K 59s
[downloadsolc]   3600K .......... .......... .......... .......... .......... 53%  276K 58s
[downloadsolc]   3650K .......... .......... .......... .......... .......... 54%  229K 56s
[downloadsolc]   3700K .......... .......... .......... .......... .......... 54%  386K 55s
[downloadsolc]   3750K .......... .......... .......... .......... .......... 55%  675K 53s
[downloadsolc]   3800K .......... .......... .......... .......... .......... 56%  457K 52s
[downloadsolc]   3850K .......... .......... .......... .......... .......... 57%  268K 50s
[downloadsolc]   3900K .......... .......... .......... .......... .......... 57%  339K 49s
[downloadsolc]   3950K .......... .......... .......... .......... .......... 58%  604K 48s
[downloadsolc]   4000K .......... .......... .......... .......... .......... 59%  565K 46s
[downloadsolc]   4050K .......... .......... .......... .......... .......... 60%  192K 45s
[downloadsolc]   4100K .......... .......... .......... .......... .......... 60% 1.49M 44s
[downloadsolc]   4150K .......... .......... .......... .......... .......... 61%  525K 42s
[downloadsolc]   4200K .......... .......... .......... .......... .......... 62%  646K 41s
[downloadsolc]   4250K .......... .......... .......... .......... .......... 62%  223K 40s
[downloadsolc]   4300K .......... .......... .......... .......... .......... 63% 1.15M 39s
[downloadsolc]   4350K .......... .......... .......... .......... .......... 64% 1.59M 38s
[downloadsolc]   4400K .......... .......... .......... .......... .......... 65%  253K 37s
[downloadsolc]   4450K .......... .......... .......... .......... .......... 65% 1.70M 35s
[downloadsolc]   4500K .......... .......... .......... .......... .......... 66% 1.01M 34s
[downloadsolc]   4550K .......... .......... .......... .......... .......... 67% 1.13M 33s
[downloadsolc]   4600K .......... .......... .......... .......... .......... 68%  392K 32s
[downloadsolc]   4650K .......... .......... .......... .......... .......... 68%  788K 31s
[downloadsolc]   4700K .......... .......... .......... .......... .......... 69%  700K 30s
[downloadsolc]   4750K .......... .......... .......... .......... .......... 70% 2.58M 29s
[downloadsolc]   4800K .......... .......... .......... .......... .......... 71%  565K 28s
[downloadsolc]   4850K .......... .......... .......... .......... .......... 71% 5.22M 27s
[downloadsolc]   4900K .......... .......... .......... .......... .......... 72%  825K 26s
[downloadsolc]   4950K .......... .......... .......... .......... .......... 73% 1.33M 25s
[downloadsolc]   5000K .......... .......... .......... .......... .......... 73%  453K 24s
[downloadsolc]   5050K .......... .......... .......... .......... .......... 74% 1.79M 23s
[downloadsolc]   5100K .......... .......... .......... .......... .......... 75% 1.21M 23s
[downloadsolc]   5150K .......... .......... .......... .......... .......... 76% 1.27M 22s
[downloadsolc]   5200K .......... .......... .......... .......... .......... 76%  244K 21s
[downloadsolc]   5250K .......... .......... .......... .......... .......... 77% 1.05M 20s
[downloadsolc]   5300K .......... .......... .......... .......... .......... 78% 1.00M 19s
[downloadsolc]   5350K .......... .......... .......... .......... .......... 79% 1.23M 18s
[downloadsolc]   5400K .......... .......... .......... .......... .......... 79%  395K 18s
[downloadsolc]   5450K .......... .......... .......... .......... .......... 80% 4.38M 17s
[downloadsolc]   5500K .......... .......... .......... .......... .......... 81%  299K 16s
[downloadsolc]   5550K .......... .......... .......... .......... .......... 82%  609K 15s
[downloadsolc]   5600K .......... .......... .......... .......... .......... 82%  229K 15s
[downloadsolc]   5650K .......... .......... .......... .......... .......... 83%  247K 14s
[downloadsolc]   5700K .......... .......... .......... .......... .......... 84% 48.6M 13s
[downloadsolc]   5750K .......... .......... .......... .......... .......... 84% 62.4M 12s
[downloadsolc]   5800K .......... .......... .......... .......... .......... 85% 53.2M 12s
[downloadsolc]   5850K .......... .......... .......... .......... .......... 86% 53.1M 11s
[downloadsolc]   5900K .......... .......... .......... .......... .......... 87% 44.5M 10s
[downloadsolc]   5950K .......... .......... .......... .......... .......... 87% 1.62M 10s
[downloadsolc]   6000K .......... .......... .......... .......... .......... 88%  904K 9s
[downloadsolc]   6050K .......... .......... .......... .......... .......... 89% 1.69M 8s
[downloadsolc]   6100K .......... .......... .......... .......... .......... 90% 1.21M 8s
[downloadsolc]   6150K .......... .......... .......... .......... .......... 90% 1.65M 7s
[downloadsolc]   6200K .......... .......... .......... .......... .......... 91% 4.34M 7s
[downloadsolc]   6250K .......... .......... .......... .......... .......... 92%  279K 6s
[downloadsolc]   6300K .......... .......... .......... .......... .......... 93% 6.26M 5s
[downloadsolc]   6350K .......... .......... .......... .......... .......... 93% 5.80M 5s
[downloadsolc]   6400K .......... .......... .......... .......... .......... 94% 3.99M 4s
[downloadsolc]   6450K .......... .......... .......... .......... .......... 95%  412K 4s
[downloadsolc]   6500K .......... .......... .......... .......... .......... 95%  813K 3s
[downloadsolc]   6550K .......... .......... .......... .......... .......... 96% 1017K 2s
[downloadsolc]   6600K .......... .......... .......... .......... .......... 97% 1.39M 2s
[downloadsolc]   6650K .......... .......... .......... .......... .......... 98% 7.24M 1s
[downloadsolc]   6700K .......... .......... .......... .......... .......... 98%  753K 1s
[downloadsolc]   6750K .......... .......... .......... .......... .......... 99% 4.73M 0s
[downloadsolc]   6800K .......... .......... ......                          100% 1.03M=71s
[downloadsolc] 
[downloadsolc] 2017-08-29 10:39:37 (96.0 KB/s) - ‘soljson.js’ saved [6990024/6990024]
[downloadsolc] 
[build       ] 
[build       ] > [email protected]0.0.0 build /Users/xiaoyu/solidity/browser-solidity
[build       ] > browserify src/index.js -o build/app.js
[build       ] 
npm notice created a lockfile as package-lock.json. You should commit this file.
up to date in 97.274s

//執行demo
[email protected]➤ npm run prepublish

> [email protected]0.0.0 prepublish /Users/xiaoyu/solidity/browser-solidity
> mkdirp build; npm-run-all -ls downloadsolc build

[downloadsolc] 
[downloadsolc] > [email protected]0.0.0 downloadsolc /Users/xiaoyu/solidity/browser-solidity
[downloadsolc] > rimraf soljson.js; wget https://ethereum.github.io/solc-bin/soljson.js
[downloadsolc] 
[downloadsolc] --2017-08-29 10:41:42--  https://ethereum.github.io/solc-bin/soljson.js
[downloadsolc] Resolving ethereum.github.io... 151.101.9.147, 2a04:4e42:2::403
[downloadsolc] Connecting to ethereum.github.io|151.101.9.147|:443... connected.
[downloadsolc] Unable to establish SSL connection.
[downloadsolc] npm ERR! code ELIFECYCLE
[downloadsolc] npm ERR! errno 4
[downloadsolc] npm ERR! [email protected]0.0.0 downloadsolc: `rimraf soljson.js; wget https://ethereum.github.io/solc-bin/soljson.js`
[downloadsolc] npm ERR! Exit status 4
[downloadsolc] npm ERR! 
[downloadsolc] npm ERR! Failed at the [email protected]0.0.0 downloadsolc script.
[downloadsolc] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[downloadsolc] 
[downloadsolc] npm ERR! A complete log of this run can be found in:
[downloadsolc] npm ERR!     /Users/xiaoyu/.npm/_logs/2017-08-29T02_44_51_298Z-debug.log
ERROR: "downloadsolc" exited with 4.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected]0.0.0 prepublish: `mkdirp build; npm-run-all -ls downloadsolc build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected]0.0.0 prepublish script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/xiaoyu/.npm/_logs/2017-08-29T02_44_51_335Z-debug.log

報錯了

[downloadsolc]連線到ethereum.github.io | 151.101.9.147 |:443 …已連線。
[downloadsolc]無法建立SSL連線。

問題不大,屬於網路問題。

再試一次

[email protected]➤ npm run prepublish

> [email protected]0.0.0 prepublish /Users/xiaoyu/solidity/browser-solidity
> mkdirp build; npm-run-all -ls downloadsolc build

[downloadsolc] 
[downloadsolc] > [email protected]0.0.0 downloadsolc /Users/xiaoyu/solidity/browser-solidity
[downloadsolc] > rimraf soljson.js; wget https://ethereum.github.io/solc-bin/soljson.js
[downloadsolc] 
[downloadsolc] --2017-08-29 11:05:51--  https://ethereum.github.io/solc-bin/soljson.js
[downloadsolc] Resolving ethereum.github.io... 151.101.73.147, 2a04:4e42:11::403
[downloadsolc] Connecting to ethereum.github.io|151.101.73.147|:443... connected.
[downloadsolc] HTTP request sent, awaiting response... 200 OK
[downloadsolc] Length: 6990024 (6.7M) [application/javascript]
[downloadsolc] Saving to: ‘soljson.js’
[downloadsolc] 
[downloadsolc]      0K .......... .......... .......... .......... ..........  0%  103K 66s
[downloadsolc]     50K .......... .......... .......... .......... ..........  1% 4.65M 33s
[downloadsolc]    100K .......... .......... .......... .......... ..........  2%  306K 29s
[downloadsolc]    150K .......... .......... .......... .......... ..........  2%  286K 28s
[downloadsolc]    200K .......... .......... .......... .......... ..........  3%  177K 29s
[downloadsolc]    250K .......... .......... .......... .......... ..........  4%  103K 35s
[downloadsolc]    300K .......... .......... .......... .......... ..........  5% 36.2M 30s
[downloadsolc]    350K .......... .......... .......... .......... ..........  5%  292K 28s
[downloadsolc]    400K .......... .......... .......... .......... ..........  6% 8.31M 25s
[downloadsolc]    450K .......... .......... .......... .......... ..........  7%  242K 25s
[downloadsolc]    500K .......... .......... .......... .......... ..........  8% 85.7K 29s
[downloadsolc]    550K .......... .......... .......... .......... ..........  8% 34.7M 27s
[downloadsolc]    600K .......... .......... .......... .......... ..........  9%  184K 27s
[downloadsolc]    650K .......... .......... .......... .......... .......... 10%  303K 26s
[downloadsolc]    700K .......... .......... .......... .......... .......... 10%  171K 27s
[downloadsolc]    750K .......... .......... .......... .......... .......... 11%  147K 27s
[downloadsolc]    800K .......... .......... .......... .......... .......... 12%  161K 28s
[downloadsolc]    850K .......... .......... .......... .......... .......... 13%  278K 27s
[downloadsolc]    900K .......... .......... .......... .......... .......... 13%  157K 28s
[downloadsolc]    950K .......... .......... .......... .......... .......... 14%  163K 28s
[downloadsolc]   1000K .......... .......... .......... .......... .......... 15%  286K 27s
[downloadsolc]   1050K .......... .......... .......... .......... .......... 16% 7.41M 26s
[downloadsolc]   1100K .......... .......... .......... .......... .......... 16%  140K 26s
[downloadsolc]   1150K .......... .......... .......... .......... .......... 17% 80.7K 28s
[downloadsolc]   1200K .......... .......... .......... .......... .......... 18%  340K 27s
[downloadsolc]   1250K .......... .......... .......... .......... .......... 19%  349K 26s
[downloadsolc]   1300K .......... .......... .......... .......... .......... 19%  391K 26s
[downloadsolc]   1350K .......... .......... .......... .......... .......... 20%  260K