solidity 静态二进制文件
2022-05-10 17:07 更新
我们在solc-bin维护一个存储库,其中包含所有受支持平台的过去和当前编译器版本的静态构建。这也是您可以找到每日开发构建的位置。
该存储库不仅是最终用户获取开箱即用的二进制文件的一种快速简便的方法,而且它对第三方工具也很友好:
- 内容镜像到https://binaries.soliditylang.org,可以通过 HTTPS 轻松下载,无需任何身份验证、速率限制或使用 git。
- 内容使用正确的 Content-Type标头和宽松的 CORS 配置提供,以便可以由浏览器中运行的工具直接加载。
- 二进制文件不需要安装或解包(与必要的 DLL 捆绑在一起的旧 Windows 版本除外)。
- 我们力求实现高水平的向后兼容性。文件一旦添加,如果不在旧位置提供符号链接/重定向,就不会被删除或移动。它们也永远不会被修改,并且应该始终与原始校验和匹配。唯一的例外是损坏或无法使用的文件,如果保持原样,可能弊大于利。
- 文件通过 HTTP 和 HTTPS 提供。只要您以安全的方式(通过 git、HTTPS、IPFS 或仅将其缓存在本地)获取文件列表并在下载二进制文件后验证它们的哈希值,您就不必对二进制文件本身使用 HTTPS。
在大多数情况下,Github 上的 Solidity 发布页面上提供了相同的二进制文件。不同的是,我们一般不会在 Github 发布页面上更新旧版本。这意味着如果命名约定发生更改,我们不会重命名它们,并且我们不会为发布时不支持的平台添加构建。这只发生在solc-bin.
存储库solc-bin包含几个顶级目录,每个目录代表一个平台。每个都包含一个list.json列出可用二进制文件的文件。例如, 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" ] }
这意味着:
- 您可以在名称为solc-emscripten-wasm32-v0.7.4+commit.3f05b770.js的同一目录中找到二进制文件 。请注意,该文件可能是符号链接,如果您不使用 git 下载它或您的文件系统不支持符号链接,则需要自行解析。
- 该二进制文件也反映在https://binaries.soliditylang.org/emscripten-wasm32/solc-emscripten-wasm32-v0.7.4+commit.3f05b770.js。在这种情况下,不需要 git 并且符号链接可以通过提供文件副本或返回 HTTP 重定向来透明地解析。
- 该文件也可在 IPFS 上的QmTLs5MuLEWXQkths41HiACoXDiH8zxyqBHGFDRSzVE5CS 获得。
- 该文件将来可能会在 Swarm 上的16c5f09109c793db99fe35f037c6092b061bd39260ee7a677c8a97f18c955ab1上可用。
- 您可以通过将其 keccak256 哈希与 0x300330ecd127756b824aa13e843cb1f43c473cb22eaf3750d5fb9c99279af8c3. 可以使用sha3sumkeccak256sum提供的实用程序或JavaScript中 ethereumjs-util 中的 keccak256() 函数在命令行上计算哈希值。
- 您还可以通过将其 sha256 哈希与 0x2b55ed5fec4d9625b6c7b3ab1abd2b7fb7dd2a9c68543bf0323db2c7e2d55af2.
警告
由于强大的向后兼容性要求,存储库包含一些遗留元素,但在编写新工具时应避免使用它们:
- 如果您想要获得最佳性能,请使用emscripten-wasm32/(回退到emscripten-asmjs/)而不是。bin/在 0.6.1 版本之前,我们只提供 asm.js 二进制文件。从 0.6.2 开始,我们切换到性能更好的WebAssembly 构建。我们已经为 wasm 重建了旧版本,但原始 asm.js 文件仍保留在bin/. 新的必须放在单独的目录中以避免名称冲突。
- 如果您想确定下载的是 wasm 还是 asm.js 二进制文件,请使用emscripten-asmjs/andemscripten-wasm32/而不是bin/and目录。wasm/
- 使用和list.json代替。JSON 列表格式包含旧版本的所有信息以及更多信息。list.jslist.txt
- 使用https://binaries.soliditylang.org而不是https://solc-bin.ethereum.org。为了简单起见,我们将与编译器相关的几乎所有内容都移到了新soliditylang.org 域下,这也适用于solc-bin。虽然建议使用新域,但仍完全支持旧域并保证指向同一位置。
警告
二进制文件也可在https://ethereum.github.io/solc-bin/获得,但此页面在 0.7.2 版发布后停止更新,不会收到任何平台的任何新版本或每日构建,并且确实不提供新的目录结构,包括非 emscripten 构建。
如果您正在使用它,请切换到https://binaries.soliditylang.org,这是一个直接替换。这使我们能够以透明的方式对底层托管进行更改并最大限度地减少中断。与ethereum.github.io我们无法控制的域不同,它binaries.soliditylang.org保证可以长期工作并保持相同的 URL 结构。
以上内容是否对您有帮助:
更多建议: