Share Dialog
Share Dialog
在本节中,我们将简要介绍如何用 Mina 客户端发送交易,以及如何开始与区块链进行互动。
如果你想在不自己运行节点的情况下发送交易,而是委托别人运行节点,请继续关注这里。如果你想直接用运行中的节点发送事务,请跳到使用连接的节点。
如果你的私钥在 Ledger 设备上,要想在离线状态下生成签名交易,请看 Ledger 离线模式。
一个更好的工具即将到来:https://github.com/MinaProtocol/mina/issues/8928。现在,请使用在该问题的评论中提供的解决方法。
要使用客户端 SDK 生成一个签名的交易,按照客户端 SDK README页面上的显示,记录创建的签名付款。
你可以使用一个托管服务来广播你的签名交易。发送你的签名交易并不会泄露你的私钥。
用客户端 SDK 签名的交易: https://minaexplorer.com/broadcast-tx
使用 Ledger 签署的交易: https://minaexplorer.com/broadcast-ledger
在剩下的部分,我们假设你的系统已经安装了 Mina 客户端,如果你没有安装 Mina,请看入门指南。
一旦我们的节点同步,我们将需要导入我们的公钥/私钥对,以便我们可以签署交易并生成一个地址来接收付款。为了安全起见,我们要把钥匙放在一个攻击者更难访问的目录下。
运行下面的命令来导入你以前生成的密钥对文件:
mina accounts import --privkey-path ~/keys/my-wallet
你会被提示输入创建账户时的密码。
警告:公钥可以与任何人自由分享,但对你的私钥文件要非常小心。千万不要与任何人分享这个私钥,因为它相当于你资金的密码。
这个命令的响应将看起来像这样:
😄 Imported account!
Public key: B62qjaA4N9843FKM5FZk1HmeuDiojG42cbCDyZeUDQVjycULte9PFkC
此外,你可以使用 mina accounts create 命令来生成新的账户来发送和接收交易。
由于公钥相当长,难以记忆,让我们把它保存为环境变量。使用下面的命令,但将 <YOUR-PUBLIC-KEY> 替换为前面命令输出的公钥。
export MINA_PUBLIC_KEY=<YOUR-PUBLIC-KEY>
现在我们可以以 $MINA_PUBLIC_KEY 的身份到处访问它 -- 通过尝试 echo $MINA_PUBLIC_KEY 来检查它是否正确保存。
注意,这些环境变量只为当前的shell会话保存,所以如果你想保存它们以便将来使用,你可以把它们添加到 ~/.profile 或 ~/.bash_profile。
注意: 如果你在云虚拟机上运行节点,确保导出并保存密钥文件。你可以用以下方法导出密钥:
mina accounts export --public-key <PUBLIC-KEY> --privkey-path <EXPORT-PATH>然后保存在本地,可以使用 scp:
scp <EXPORT-PATH> <LOCAL-DESTINATION>之后,当启动一个新的虚拟机时,你可以上船私钥和引用:
mina accounts import --privkey-path <PRIVATE-KEY-FILE>
如果你忘记了你已经创建了哪些密钥对,你可以通过以下方式看到它们:
我们可以用这个命令检查我们所有账户的余额:
你可能会看到余额Balance: 0 mina ,根据网络中的流量,可能需要几个区块才能通过你的交易。
最后,我们进入正题--发送我们的第一笔交易! 在你发送付款之前,你需要解锁你的账户:
mina accounts unlock --public-key $MINA_PUBLIC_KEY
为了测试的目的,我们将指定你的公钥作为接收方和发送方。这只是意味着我们在向自己发送一个交易,你可以通过发出以下命令看到你的公钥。
echo $MINA_PUBLIC_KEY
警告:如果接收账户没有收到任何交易,将有一个额外的账户创建费 1 MINA,将从交易金额中扣除。
让我们把一些 MINA 寄给自己,看看付款是什么样子。
mina client send-payment \
--amount 1.5 \
--receiver $MINA_PUBLIC_KEY \
--fee 0.1 \
--sender $MINA_PUBLIC_KEY
如果你想知道我们在上面的命令中传递了什么。
amount是将发送一个1.5米纳的测试值,这足以支付账户创建费。
receiver 是接收交易的账户的公钥,如 B62qjaA4N9843FKM5FZk...
fee,用 0.1 MINA 吧
sender 是发送交易的地址,如 B62qjaA4N9843FKM5FZk...
如果这个命令的格式正确,我们应该得到一个看起来像下面的响应。
Dispatched payment with ID 3XCgvAHLAqz9VVbU7an7f2L5ffJtZoFega7jZpVJrPCYA4j5HEmUAx51BCeMc232eBWVz6q9t62Kp2cNvQZoNCSGqJ1rrJpXFqMN6NQe7x987sAC2Sd6wu9Vbs9xSr8g1AkjJoB65v3suPsaCcvvCjyUvUs8c3eVRucH4doa2onGj41pjxT53y5ZkmGaPmPnpWzdJt4YJBnDRW1GcJeyqj61GKWcvvrV6KcGD25VEeHQBfhGppZc7ewVwi3vcUQR7QFFs15bMwA4oZDEfzSbnr1ECoiZGy61m5LX7afwFaviyUwjphtrzoPbQ2QAZ2w2ypnVUrcJ9oUT4y4dvDJ5vkUDazRdGxjAA6Cz86bJqqgfMHdMFqpkmLxCdLbj2Nq3Ar2VpPVvfn2kdKoxwmAGqWCiVhqYbTvHkyZSc4n3siGTEpTGAK9usPnBnqLi53Z2bPPaJ3PuZTMgmdZYrRv4UPxztRtmyBz2HdQSnH8vbxurLkyxK6yEwS23JSZWToccM83sx2hAAABNynBVuxagL8aNZF99k3LKX6E581uSVSw5DAJ2S198DvZHXD53QvjcDGpvB9jYUpofkk1aPvtW7QZkcofBYruePM7kCHjKvbDXSw2CV5brHVv5ZBV9DuUcuFHfcYAA2TVuDtFeNLBjxDumiBASgaLvcdzGiFvSqqnzmS9MBXxYybQcmmz1WuKZHjgqph99XVEapwTsYfZGi1T8ApahcWc5EX9
Receipt chain hash is now A3gpLyBJGvcpMXny2DsHjvE5GaNFn2bbpLLQqTCHuY3Nd7sqy8vDbM6qHTwHt8tcfqqBkd36LuV4CC6hVH6YsmRqRp4Lzx77WnN9gnRX7ceeXdCQUVB7B2uMo3oCYxfdpU5Q2f2KzJQ46
在账户的第一笔交易中,你可能看不到 Receipt chain hash,但在随后的交易中,这将向你显示收据链哈希值列表的头部。
一旦你对创建地址、发送和接收米娜的基础知识感到满意,我们就可以进入 Mina 网络真正独特的部分,如参与共识和帮助压缩区块链。
有时你可能希望发送许多交易:例如,如果你正在运行一个赌注池,则向委托你的人支付奖励。
这里的所有信息都与1.2.0版本有关(目前处于测试阶段):
目前,网络上的节点会限制从一个给定的节点接收信息的速率。从1.2.0版本开始,你的节点在发送交易时也将遵循这一速率限制。具体来说,目前的限制是每15秒10个交易,在5分钟的窗口内计算。如果你试图以超过这个速度发送交易,你的节点将排队,并在计算速率限制的窗口中的旧交易过期时刷新它们。你不需要自己控制这些交易的发送。
注意,旧版本的mina守护进程不执行这种速率限制;如果你运行的是旧版本,你应该手动限制交易的数量。由于重新广播交易的开销,如果你需要手动限制速率,我们不建议每5分钟发送超过50个交易。
Mina守护进程目前没有持久化交易池。这意味着,如果你的节点在这个过程中崩溃了,你的节点将不知道你迄今为止发送的任何交易。从1.2.0版本开始,你可以重新发送所有的交易(和以前的方式完全一样),它们将在网络上被重新广播。
如果你认为你暂时与网络断开了连接,但你的节点仍然在线(即八卦网络可能错过了你的一个或多个交易),从1.2.0版本开始,你可以在本地重新发送任何交易,即使你的节点认为它们已经被共享,它们也会被重新广播到网络上。
要取消一个交易,你需要在你的本地交易 mempool 中拥有所有之前还没有提交到链上的交易。这意味着如果你的节点崩溃了(见上文),你将需要重新发送那些早期的交易。最后,要取消一个交易,你所需要做的就是发送一个与你想取消的交易相同的 nonce,并收取更大的费用。没有最小增量,只是需要稍微大一点(并且大到足以让区块生产者选择你的交易)。
原文:
在本节中,我们将简要介绍如何用 Mina 客户端发送交易,以及如何开始与区块链进行互动。
如果你想在不自己运行节点的情况下发送交易,而是委托别人运行节点,请继续关注这里。如果你想直接用运行中的节点发送事务,请跳到使用连接的节点。
如果你的私钥在 Ledger 设备上,要想在离线状态下生成签名交易,请看 Ledger 离线模式。
一个更好的工具即将到来:https://github.com/MinaProtocol/mina/issues/8928。现在,请使用在该问题的评论中提供的解决方法。
要使用客户端 SDK 生成一个签名的交易,按照客户端 SDK README页面上的显示,记录创建的签名付款。
你可以使用一个托管服务来广播你的签名交易。发送你的签名交易并不会泄露你的私钥。
用客户端 SDK 签名的交易: https://minaexplorer.com/broadcast-tx
使用 Ledger 签署的交易: https://minaexplorer.com/broadcast-ledger
在剩下的部分,我们假设你的系统已经安装了 Mina 客户端,如果你没有安装 Mina,请看入门指南。
一旦我们的节点同步,我们将需要导入我们的公钥/私钥对,以便我们可以签署交易并生成一个地址来接收付款。为了安全起见,我们要把钥匙放在一个攻击者更难访问的目录下。
运行下面的命令来导入你以前生成的密钥对文件:
mina accounts import --privkey-path ~/keys/my-wallet
你会被提示输入创建账户时的密码。
警告:公钥可以与任何人自由分享,但对你的私钥文件要非常小心。千万不要与任何人分享这个私钥,因为它相当于你资金的密码。
这个命令的响应将看起来像这样:
😄 Imported account!
Public key: B62qjaA4N9843FKM5FZk1HmeuDiojG42cbCDyZeUDQVjycULte9PFkC
此外,你可以使用 mina accounts create 命令来生成新的账户来发送和接收交易。
由于公钥相当长,难以记忆,让我们把它保存为环境变量。使用下面的命令,但将 <YOUR-PUBLIC-KEY> 替换为前面命令输出的公钥。
export MINA_PUBLIC_KEY=<YOUR-PUBLIC-KEY>
现在我们可以以 $MINA_PUBLIC_KEY 的身份到处访问它 -- 通过尝试 echo $MINA_PUBLIC_KEY 来检查它是否正确保存。
注意,这些环境变量只为当前的shell会话保存,所以如果你想保存它们以便将来使用,你可以把它们添加到 ~/.profile 或 ~/.bash_profile。
注意: 如果你在云虚拟机上运行节点,确保导出并保存密钥文件。你可以用以下方法导出密钥:
mina accounts export --public-key <PUBLIC-KEY> --privkey-path <EXPORT-PATH>然后保存在本地,可以使用 scp:
scp <EXPORT-PATH> <LOCAL-DESTINATION>之后,当启动一个新的虚拟机时,你可以上船私钥和引用:
mina accounts import --privkey-path <PRIVATE-KEY-FILE>
如果你忘记了你已经创建了哪些密钥对,你可以通过以下方式看到它们:
我们可以用这个命令检查我们所有账户的余额:
你可能会看到余额Balance: 0 mina ,根据网络中的流量,可能需要几个区块才能通过你的交易。
最后,我们进入正题--发送我们的第一笔交易! 在你发送付款之前,你需要解锁你的账户:
mina accounts unlock --public-key $MINA_PUBLIC_KEY
为了测试的目的,我们将指定你的公钥作为接收方和发送方。这只是意味着我们在向自己发送一个交易,你可以通过发出以下命令看到你的公钥。
echo $MINA_PUBLIC_KEY
警告:如果接收账户没有收到任何交易,将有一个额外的账户创建费 1 MINA,将从交易金额中扣除。
让我们把一些 MINA 寄给自己,看看付款是什么样子。
mina client send-payment \
--amount 1.5 \
--receiver $MINA_PUBLIC_KEY \
--fee 0.1 \
--sender $MINA_PUBLIC_KEY
如果你想知道我们在上面的命令中传递了什么。
amount是将发送一个1.5米纳的测试值,这足以支付账户创建费。
receiver 是接收交易的账户的公钥,如 B62qjaA4N9843FKM5FZk...
fee,用 0.1 MINA 吧
sender 是发送交易的地址,如 B62qjaA4N9843FKM5FZk...
如果这个命令的格式正确,我们应该得到一个看起来像下面的响应。
Dispatched payment with ID 3XCgvAHLAqz9VVbU7an7f2L5ffJtZoFega7jZpVJrPCYA4j5HEmUAx51BCeMc232eBWVz6q9t62Kp2cNvQZoNCSGqJ1rrJpXFqMN6NQe7x987sAC2Sd6wu9Vbs9xSr8g1AkjJoB65v3suPsaCcvvCjyUvUs8c3eVRucH4doa2onGj41pjxT53y5ZkmGaPmPnpWzdJt4YJBnDRW1GcJeyqj61GKWcvvrV6KcGD25VEeHQBfhGppZc7ewVwi3vcUQR7QFFs15bMwA4oZDEfzSbnr1ECoiZGy61m5LX7afwFaviyUwjphtrzoPbQ2QAZ2w2ypnVUrcJ9oUT4y4dvDJ5vkUDazRdGxjAA6Cz86bJqqgfMHdMFqpkmLxCdLbj2Nq3Ar2VpPVvfn2kdKoxwmAGqWCiVhqYbTvHkyZSc4n3siGTEpTGAK9usPnBnqLi53Z2bPPaJ3PuZTMgmdZYrRv4UPxztRtmyBz2HdQSnH8vbxurLkyxK6yEwS23JSZWToccM83sx2hAAABNynBVuxagL8aNZF99k3LKX6E581uSVSw5DAJ2S198DvZHXD53QvjcDGpvB9jYUpofkk1aPvtW7QZkcofBYruePM7kCHjKvbDXSw2CV5brHVv5ZBV9DuUcuFHfcYAA2TVuDtFeNLBjxDumiBASgaLvcdzGiFvSqqnzmS9MBXxYybQcmmz1WuKZHjgqph99XVEapwTsYfZGi1T8ApahcWc5EX9
Receipt chain hash is now A3gpLyBJGvcpMXny2DsHjvE5GaNFn2bbpLLQqTCHuY3Nd7sqy8vDbM6qHTwHt8tcfqqBkd36LuV4CC6hVH6YsmRqRp4Lzx77WnN9gnRX7ceeXdCQUVB7B2uMo3oCYxfdpU5Q2f2KzJQ46
在账户的第一笔交易中,你可能看不到 Receipt chain hash,但在随后的交易中,这将向你显示收据链哈希值列表的头部。
一旦你对创建地址、发送和接收米娜的基础知识感到满意,我们就可以进入 Mina 网络真正独特的部分,如参与共识和帮助压缩区块链。
有时你可能希望发送许多交易:例如,如果你正在运行一个赌注池,则向委托你的人支付奖励。
这里的所有信息都与1.2.0版本有关(目前处于测试阶段):
目前,网络上的节点会限制从一个给定的节点接收信息的速率。从1.2.0版本开始,你的节点在发送交易时也将遵循这一速率限制。具体来说,目前的限制是每15秒10个交易,在5分钟的窗口内计算。如果你试图以超过这个速度发送交易,你的节点将排队,并在计算速率限制的窗口中的旧交易过期时刷新它们。你不需要自己控制这些交易的发送。
注意,旧版本的mina守护进程不执行这种速率限制;如果你运行的是旧版本,你应该手动限制交易的数量。由于重新广播交易的开销,如果你需要手动限制速率,我们不建议每5分钟发送超过50个交易。
Mina守护进程目前没有持久化交易池。这意味着,如果你的节点在这个过程中崩溃了,你的节点将不知道你迄今为止发送的任何交易。从1.2.0版本开始,你可以重新发送所有的交易(和以前的方式完全一样),它们将在网络上被重新广播。
如果你认为你暂时与网络断开了连接,但你的节点仍然在线(即八卦网络可能错过了你的一个或多个交易),从1.2.0版本开始,你可以在本地重新发送任何交易,即使你的节点认为它们已经被共享,它们也会被重新广播到网络上。
要取消一个交易,你需要在你的本地交易 mempool 中拥有所有之前还没有提交到链上的交易。这意味着如果你的节点崩溃了(见上文),你将需要重新发送那些早期的交易。最后,要取消一个交易,你所需要做的就是发送一个与你想取消的交易相同的 nonce,并收取更大的费用。没有最小增量,只是需要稍微大一点(并且大到足以让区块生产者选择你的交易)。
原文:

Subscribe to chezhe

Subscribe to chezhe
<100 subscribers
<100 subscribers
No activity yet