Ganache
Ganache 是您用于以太坊开发的个人区块链。
入门指南
您可以通过Ganache网站上的"下载"按钮或从本仓库的发布页面下载适用于您选择平台的自包含预构建Ganache二进制文件。
Ganache也作为命令行工具提供。如果您更喜欢在命令行上工作,请查看ganache CLI。
贡献
请为新功能、问题和错误修复提出问题和拉取请求。
要求:
node v14.21.1
开始使用:
- 克隆此仓库
- 运行
npm install
- 运行
npm run dev
如果使用Windows,您可能需要先安装windows-build-tools。
为所有平台构建
每个平台都有一个关联的npm run
配置,以帮助您更轻松地在每个平台上构建。由于每个平台都有不同(但相似)的构建过程,它们需要不同的配置。请注意,Windows和Mac都需要证书来签署构建的包;出于安全原因,这些证书不会上传到github,它们的密码也不会保存在源代码控制中。
在Windows上:
在Windows上构建将创建一个.appx
文件,用于Windows商店。
构建之前,创建./certs
目录,包含以下文件:
./certs/cert.pfx
- 注意.pfx
文件与.p12
文件相同。(如果您得到的是.p12
文件,只需更改扩展名即可。)
要在Windows上构建,您必须首先确保已安装Windows 10 SDK。如果在构建过程中出现错误,请确保package.json文件中的windowsStoreConfig.windowsKit
指向您的Windows 10 SDK目录。package.json文件中当前指定的目录是在确定此过程时有效的;它可能需要定期更新。
由于Windows需要证书来构建包,并且该证书需要密码,您需要运行以下命令而不是npm run make
:
为了在Windows 10上成功签署appx包,可能需要使用与electron-builder捆绑的二进制文件不同的替代signtool.exe
。请参阅https://github.com/electron-userland/electron-builder/pull/6817。
从https://developer.microsoft.com/en-us/windows/downloads/sdk-archive 安装Windows SDK 18362,并按如下方式设置electron-builder的signtool路径:
$env:SIGNTOOL_PATH='C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\signtool.exe'
注意:较新版本的SDK可能不起作用,因为/fd
(文件摘要)参数的默认值不再受支持(如果摘要是SHA1
[默认值],electron在生成signtool.exe
时将排除该参数,请参阅https://github.com/electron-userland/electron-builder/blob/aeffe080e07f11057134947e09021cd9d6712935/packages/app-builder-lib/src/codeSign/windowsCodeSign.ts#L232)。而较旧的版本不支持`SIGNTOOL_PATH`环境变量。
$ CERT_PASS="..." npm run build-windows
在上面的命令中,用您的证书密码替换...
。
这将在./out/make
中创建一个.appx
文件。
在Mac上:
在Mac上构建将创建一个标准的Mac .dmg
文件。
在Mac上构建之前,请确保将Truffle的签名密钥添加到您的钥匙串中。然后运行以下命令:
$ npm run build-mac
这将在./out/make
中创建一个签名的.dmg
文件。
在Linux上:
在Linux上构建将创建一个.AppImage
文件,旨在在多个Linux版本上运行。
Linux不需要签名密钥,因此无需设置。只需运行以下命令:
$ npm run build-linux
这将在./out/make
中创建一个.AppImage
文件。
生成图标资产
资产生成通常只需要进行一次,或者在应用程序的徽标更新时进行。如果您发现需要重新构建资产,使用了以下应用程序:
使用了两个工具:
electron-icon-maker
在使用Electron的squirrel
包时为所有平台生成资产,这些资产位于./static/icons
中。svg2uwptiles
生成Windows appx构建所需的所有资产,这些资产位于./build/appx
中。这些位置将来可以更改,但请确保更改指向这些资产的相关配置。
作者注:我发现手动管理这些资产(尤其是appx资产)很麻烦。如果可能,请尽量不要编辑资产本身,而是使用上述生成器之一。
风格化开发
由于文件大小问题、许可问题或两者兼有,"附加功能"不存储在此存储库中。
非以太坊"风格化"Ganache附加功能上传到以下发布页面:https://github.com/trufflesuite/ganache-flavors/releases
当"附加功能"发生变化时,应将其上传到新的发布版本,并发布相应的Ganache版本,该版本针对新的ganache-flavors发布版本(请参阅common/extras/index.js
了解需要更新的内容)
VS Code 调试
以下是一个.vscode/launch.json
配置,可以同时附加到主进程和渲染进程。您只需要运行Launch Ganache UI配置;渲染器附加配置将自动运行。
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Renderer Process",
"port": 9222,
"request": "attach",
"type": "pwa-chrome",
"webRoot": "${workspaceFolder:ganache}",
"sourceMaps": true,
"sourceMapPathOverrides": {
"webpack:///./*": "${webRoot}/*"
}
},
{
"name": "Launch Ganache UI",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder:ganache}",
"runtimeExecutable": "${workspaceFolder:ganache}/node_modules/.bin/electron-webpack",
"args": ["dev"],
"sourceMaps": true,
"serverReadyAction": {
"pattern": "Renderer debugger is listening on port ([0-9]+)",
"action": "startDebugging",
"name": "Attach to Renderer Process"
}
}
]
}
由Truffle提供
Ganache是Truffle工具套件的一部分。了解更多!