Mina 开发者文档 – 使用 Mina
3.1 生成一个密钥对
为了使用Mina主网或者参与测试网,首先需要生成一个密钥对,它由一个公钥和一个私钥组成。目前支持两种密钥对的生成工具:mina-generate-keypair和ledger-app-mina。我们还有一个工具来验证您的私钥是否被正确创建。
请注意,您可能希望生成多个密钥对。例如,如果您希望以最安全的方式运行一个区块生产者,您将需要同时生成热钱包和冷钱包。
方法
mina-generate-keypair
我们已经创建了一个简单的命令行实用程序,并称之为mina-generate-keypair。这是最简单的方法,并且您可以在下面找到说明。
Ledger 硬件钱包
您可以使用您的Ledger Nano S硬件钱包安全地存储您的Mina私钥。我们正在进行独立的安全审计,目前没有发现任何漏洞,开发工作已接近完成。请参阅我们的ledger-app-mina文档来开始使用这个工具。
客户端SDK
我们还创建了一个客户端SDK,它能够生成密钥对和对事务签名。请注意,我们是不建议这种方法的,这应该只由有经验的安全专家使用。请使用我们的“mina-generate-keypair”工具来创建密钥对。了解有关更多信息,请参阅我们的客户端SDK文档。
警告
永远不要泄露您的私钥,并确保它们被妥善保存。如果您丢失了您的私钥,或者一个恶意参与者获得了对您的私钥的访问权,那么您将失去对您的帐户的访问权,并将失去您帐户中的资金。请使用您的公钥,Mina永远不会询问您的私钥。
使用mina-generate-keypair
为了简化创建密钥对的过程,我们创建了一个简单的命令行实用程序,称为mina-generate-keypair。Mina-generate-Keypair工具易于使用,可以创建您自己的密钥对,从而开始参与Mina网络。请参阅下面的内容,并了解如何在本地系统上安装和使用密钥。
安装
我们为mina-generate-keypair工具提供几种不同的操作系统的支持。请按照下面的说明将工具安装到您的系统上。
macOS
如果您使用的是macOS,请安装Docker,并遵循以下Docker的基础说明。
Ubuntu 18.04 / Debian 9
添加Mina repo之后,您可以简单地运行以下命令。
sudo apt-get install mina-generate-keypair=0.2.12-718eba4
通过运行mina-generate-keypair -version
检查keygen工具是否正确安装。输出的应该是branch HEAD上的Commit [DIRTY]718eba4826794f83d51c0d8dcf538e78b0259528。
Windows /其他平台
安装Docker并按照下面的步骤3b中有关Docker的说明操作。
使用
创建密钥对很简单,只需几步就可以完成。
- 首先,确保您的系统中有一个可以存储密钥文件的文件夹。我们建议使用~/keys文件夹。
mkdir ~/keys
- 接下来,确保正确设置该文件夹的权限,这将防止不需要的进程访问这些文件。
chmod 700 ~/keys
- 使用Debian/Ubuntu上的步骤3a或Docker上的步骤3b来生成密钥
警告
确保使用以下命令设置一个新的安全密码。Mina永远不会向您询问此密码,您也不应该和任何人分享该密码。
3a. 在Ubuntu/Debian中:使用mina-generate-keypair命令生成密钥。当出现提示时,请输入用于保护此密钥的密码。如果设置了,工具将使用来自CODA_PRIVKEY_PASS环境变量的密码,而不再提示。请不要忘记这个密码。
mina-generate-keypair -privkey-path ~/keys/my-wallet
3b. 在Windows/MacOS/Linux的Docker中:使用minaprotocol/generate-keypair docker映像生成密钥。当出现提示时,请输入用于保护此密钥的密码。请不要忘记这个密码。
cd ~ docker run --interactive --tty --rm --volume $(pwd)/keys:/keys minaprotocol/generate-keypair:0.2.12-718eba4 -privkey-path /keys/my-wallet
这将在您的系统上创建两个文件,其中包含加密的私钥~/keys/my-wallet和以明文形式包含公钥的pub~/keys/my-wallet。请将私钥文件和密码存储在安全的地方,如密码管理器。
警告
永远不要泄露您的私钥,并确保它们被妥善保存。如果您丢失了您的私钥,或者一个恶意参与者获得了对您的私钥的访问权,那么您将失去对您的帐户的访问权,并将失去您帐户的资金。无论何时,请提供您的公钥,Mina永远不会询问您的私钥。
最后,确保正确设置了私钥文件的权限,这将防止不需要的进程访问它。
chmod 600 ~/keys/my-wallet
验证您的私钥
现在您已经创建了密钥——您需要验证它是否有效。验证是否可以对事务进行签名就足够了。您可以使用mina-validate-keypair工具验证。
在Linux系统下,执行如下命令:
mina-validate-keypair -privkey-path <path-to-the-private-key-file>
如果使用Docker,执行以下命令:
docker run --interactive --tty --rm --entrypoint=mina-validate-keypair --volume $(pwd)/keys:/keys minaprotocol/generate-keypair:0.2.12-718eba4 -privkey-path /keys/my-wallet
下一个步骤
现在我们已经创建了密钥对,终于可以连接到网络或共享您的公钥了。