solidity 靜態(tài)二進(jìn)制文件

2022-05-10 17:07 更新

我們在solc-bin維護(hù)一個存儲庫,其中包含所有受支持平臺的過去和當(dāng)前編譯器版本的靜態(tài)構(gòu)建。這也是您可以找到每日開發(fā)構(gòu)建的位置。

該存儲庫不僅是最終用戶獲取開箱即用的二進(jìn)制文件的一種快速簡便的方法,而且它對第三方工具也很友好:

  • 內(nèi)容鏡像到https://binaries.soliditylang.org,可以通過 HTTPS 輕松下載,無需任何身份驗(yàn)證、速率限制或使用 git。
  • 內(nèi)容使用正確的 Content-Type標(biāo)頭和寬松的 CORS 配置提供,以便可以由瀏覽器中運(yùn)行的工具直接加載。
  • 二進(jìn)制文件不需要安裝或解包(與必要的 DLL 捆綁在一起的舊 Windows 版本除外)。
  • 我們力求實(shí)現(xiàn)高水平的向后兼容性。文件一旦添加,如果不在舊位置提供符號鏈接/重定向,就不會被刪除或移動。它們也永遠(yuǎn)不會被修改,并且應(yīng)該始終與原始校驗(yàn)和匹配。唯一的例外是損壞或無法使用的文件,如果保持原樣,可能弊大于利。
  • 文件通過 HTTP 和 HTTPS 提供。只要您以安全的方式(通過 git、HTTPS、IPFS 或僅將其緩存在本地)獲取文件列表并在下載二進(jìn)制文件后驗(yàn)證它們的哈希值,您就不必對二進(jìn)制文件本身使用 HTTPS。

在大多數(shù)情況下,Github 上的 Solidity 發(fā)布頁面上提供了相同的二進(jìn)制文件。不同的是,我們一般不會在 Github 發(fā)布頁面上更新舊版本。這意味著如果命名約定發(fā)生更改,我們不會重命名它們,并且我們不會為發(fā)布時不支持的平臺添加構(gòu)建。這只發(fā)生在solc-bin.

存儲庫solc-bin包含幾個頂級目錄,每個目錄代表一個平臺。每個都包含一個list.json列出可用二進(jìn)制文件的文件。例如, emscripten-wasm32/list.json您將在 0.7.4 版中找到以下信息:

{
  "path": "solc-emscripten-wasm32-v0.7.4+commit.3f05b770.js",
  "version": "0.7.4",
  "build": "commit.3f05b770",
  "longVersion": "0.7.4+commit.3f05b770",
  "keccak256": "0x300330ecd127756b824aa13e843cb1f43c473cb22eaf3750d5fb9c99279af8c3",
  "sha256": "0x2b55ed5fec4d9625b6c7b3ab1abd2b7fb7dd2a9c68543bf0323db2c7e2d55af2",
  "urls": [
    "bzzr://16c5f09109c793db99fe35f037c6092b061bd39260ee7a677c8a97f18c955ab1",
    "dweb:/ipfs/QmTLs5MuLEWXQkths41HiACoXDiH8zxyqBHGFDRSzVE5CS"
  ]
}

這意味著:

警告
由于強(qiáng)大的向后兼容性要求,存儲庫包含一些遺留元素,但在編寫新工具時應(yīng)避免使用它們:
  • 如果您想要獲得最佳性能,請使用emscripten-wasm32/(回退到emscripten-asmjs/)而不是。bin/在 0.6.1 版本之前,我們只提供 asm.js 二進(jìn)制文件。從 0.6.2 開始,我們切換到性能更好的WebAssembly 構(gòu)建。我們已經(jīng)為 wasm 重建了舊版本,但原始 asm.js 文件仍保留在bin/. 新的必須放在單獨(dú)的目錄中以避免名稱沖突。
  • 如果您想確定下載的是 wasm 還是 asm.js 二進(jìn)制文件,請使用emscripten-asmjs/andemscripten-wasm32/而不是bin/and目錄。wasm/
  • 使用和list.json代替。JSON 列表格式包含舊版本的所有信息以及更多信息。list.jslist.txt
  • 使用https://binaries.soliditylang.org而不是https://solc-bin.ethereum.org。為了簡單起見,我們將與編譯器相關(guān)的幾乎所有內(nèi)容都移到了新soliditylang.org 域下,這也適用于solc-bin。雖然建議使用新域,但仍完全支持舊域并保證指向同一位置。
警告
二進(jìn)制文件也可在https://ethereum.github.io/solc-bin/獲得,但此頁面在 0.7.2 版發(fā)布后停止更新,不會收到任何平臺的任何新版本或每日構(gòu)建,并且確實(shí)不提供新的目錄結(jié)構(gòu),包括非 emscripten 構(gòu)建。
如果您正在使用它,請切換到https://binaries.soliditylang.org,這是一個直接替換。這使我們能夠以透明的方式對底層托管進(jìn)行更改并最大限度地減少中斷。與ethereum.github.io我們無法控制的域不同,它binaries.soliditylang.org保證可以長期工作并保持相同的 URL 結(jié)構(gòu)。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號