Command Line Wallet

From Mochimo Wiki China
Jump to: navigation, search

这篇指导文章是由程序开发者针对开发者创建关于如何使用CLI钱包,并且直接跟我们的矿工社区像关联。如果你对Linux和命令行不熟悉或者不感兴趣可以尝试使用我们的 Mojo GUI钱包.

安装

在有些场合下你可能想要编辑钱包让其从任何挖矿能力中分离出来。这只需要在Git repo里做一些很小的变动即可,让我们先从克隆拷贝git repo开始吧:

克隆 Git

git clone https://github.com/mochimodev/mochimo

01-clonegit.gif

创建新的安装脚本

接下来我们需要创建一个可以执行的 makewal文件以便让我们只编辑钱包软件但不需要改动用于挖矿的Cuda代码。 下面是需要执行的四行代码:

cd ./mochimo/src
touch makewal
chmod +x ./makewal
nano ./makewal

02a createNewInstallScript.gif

现在你应该在nano编辑器里了,我们可以复制黏贴下面的代码去文件里:
#!/bin/sh
# Change the set CC line for your compiler:

export set CC='cc -DUNIXLIKE -DLONG64'
echo Building wallet...
$CC -c crypto/sha256.c 2>ccerror.log
$CC -c crypto/wots/wots.c  2>>ccerror.log
$CC -o wallet wallet.c wots.o sha256.o 2>>ccerror.log
echo Errors logged to ccerror.log
ls -l ccerror.log

现在可以保存和退出nano编辑器,用以下指令 Ctrl-o 然后回车再按 Ctrl-x

02b-createNewInstallScript.gif

现在就可以运行了!

现在我们只需要在 mochimo/src/ 的目录下的终端输入 ./makewal 就可以了。
如果之前的步骤都操作正确的话,现在我们应该已经在 src/ 的目录下有了一个钱包的软件。输入 ls 在指令里来查看确认钱包软件是否存在。

03a-runIt.gif

让我们用下列指令来创建一个 bin 的目录, 然后把二进位数据转移过去:

mkdir ../bin/
cp ./wallet ../bin
cd ../bin

我们现在应该在 bin 的目录。
输入 ls 指令查看目录内人确定钱包程序是否存在。

03b-runIt.gif

好了! 程序安装成功  :)

第一次运行钱包

创建一个新的钱包

mochimo/bin/ 的目录下输入下列指令执行钱包程序:

./wallet -p2095 -n

(备注:端口 2095 需要将你的网络打开以实现挖矿功能,但是对钱包的运行不影响。不过你仍然需要输入上述指令。)

  1. 系统将提示您选择钱包的名称。在我们的演示中,将其称为 My Wallet。
  2. 系统将提示您输入密码。您的钱包随时都在100%的加密保护下。此密码将用于解密钱包 - 一定不要丢失。
  3. 系统会要求您输入一些随机文本以帮助随机化您的钱包种子。您无需记住此信息。
    1. 如果这是Linux上的新安装,比如在云服务器上,你可能会被卡住。这意味着您的框没有足够的信息量来创建此步骤所需的随机性。以下是该问题的建议解决方案:
      1. 你需要打开一个新的终端窗口然后输入以下指令。
      2. sudo apt-get install rng-tools
      3. sudo rngd -r /dev/urandom
      4. 这应该足够解决你的问题了,如果还是无法解决,可以在 ‘’Discord‘’ 社区里面寻找新的解决方案。
  4. 你会被要求选择一个文件名,我们建议的是 mochimo.wal
  5. 钱包文件会被保存到硬盘,钱包软件也会存在。
  6. 确认 mochimo.wal 是否成功创建,在保存文件的目录下输入 ls

04-createWallet.gif

下载网络节点和运行钱包

先在下一个 startnodes.lst 文件, 这样钱包就有在多个节点上获取网络的信息,从而避免出现 ***Balance check failed*** 余额检查失败的错误提示。最简单的方法就是在Linux下执行下面这个指令:

wget https://www.mochimap.net/startnodes.lst

如果你钱包的名称是 mochimo.wal, 那么现在就可以用下面的指令打开:

./wallet -p2095 mochimo.wal

系统将提示您输入密码。 如果您输入的内容不正确,系统将 不会提示您, 但是当您打开钱包时,钱包顶部的名称会出现乱码。 这是因为是密码是解密密钥,但是不存储在钱包本身里。 如果输入错误,钱包仍然会使用错误的密钥解密,结果将是乱码。 如果您选择的钱包名称显示在屏幕顶部,则表示您已正确输入。 在我们的演示中,会看到顶部显示“My Wallet”。

600px

创建一个新的非挖矿地址

这里合理我们将展示一个你不是矿工但是想从矿工朋友那里购买Mochimo的情况。首先,你需要拥有一个Mochimo的钱包地址来接受货币。我们这里会用传统的老派方法,因为这是一个原始老派的钱包。当然也可以通过我们新的跨平台图像钱包 Mojo 钱包.

  1. 第一步,需要在选项 4下创建一个新的地址。
  2. 这里你必须给它起一个名字,我们用了 Mo Money。 该地址将被分配一个顺序高于您上一个地址的索引。 如果您还没有任何地址,那么这将是索引 1
  3. 如果你使用的事最新版本的钱包,你会被提问是否要标签(Tag)这个地址 (了解更多关于 Tag), 不过在本篇指导中我们选 N 就可以了。

06-createAddress.gif

找到你的地址

  1. 在返回到主菜单后,建议每一次都点击 6 来检查余额 (6 Check Balances)。 如果你没有一个带有余额的地址,那么你会看到 No entries 的显示。

如果您要导出的地址尚无余额,则可能很难找到该地址的索引号。 下面是正确的方法:

  1. 从主菜单选择 9 进入第二页菜单
  2. 接下来选择 2 Display change addresses 显示找零账户。 这可以显示你所有0余额的地址。在这里你可以找到正确索引地址。
  1. 如果你想查看十六进制地址,选择选项 4 Display address in hex 以十六进制显示地址。

07-checkAddressHex.gif

接收 Mochimo

导出你的地址

there is a "tagging" feature which is our long-term solution to this problem and will be explained later. 为了让我们的朋友可以向我们发送Mochimo,我们将给他发送一个地址文件。 这与其他加密货币略有不同的原因正是使我们成为抗量子计算货币的原因之一。 我们的地址长度超过2000个字节。 这不是可以轻松地在网络上输入的东西。 解决这个问题的简单方法是导出整个文件并通过电子邮件发送给你的朋友,这就是我们将在这里做的事情。 这有一个“Tag标记”功能,是我们对这个问题的长期解决方案,将在后面解释。

  1. 从钱包的主菜单开始
  2. 选择 7 Export address 导出地址
  3. 现在你要选择你希望导出的地址的索引号。如果你不确定哪个才是正确的索引,那么可以参考上一节 找到你的地址
  4. 当选取了你想要导出地址的索引后,钱包会要求你给导出文件命名,这里我们起名为: myStack.dat
  5. 下一个问题是 Write balance (y/n)?是否写入余额? 如果这里选择 yes 是的, 那么我们的朋友将能够在他打开钱包是看到我们的余额。如果选择 No, 我们的朋友还是有可能找出我们的余额,不过需要再执行额外的步骤。
  6. 如果在之前的问题选择了 y 就会出现下面这个问题: Write secret (y/n) 是否写入密匙? 反之选择 n 就不会出现。 在这里我们一定不想要让导出的文件附上我们的密匙。’‘’如果这里选择在文件上写入密匙,那么别人就可以控制他发给我们的货币,所以我们要选 n。‘’‘(这里的密匙可以允许用户发送MCM,没有写入密匙的文件相当于只读文件)

08a-exportAddressReceiveMCM.gif

导出的 myStack.dat 文件会被保存在你 mochimo.wal钱包文件相同的 /mochimo/bin/ 目录下 (下面的截屏是我们的例子)。 被导出的文件会从服务器上转移到你的本地电脑上。有很多方法可以做到这一点,我们建议通过加密通道进行安全传输以确保安全。

从这里我们只需要给我们的朋友发电子邮件并将此文件附加到该电子邮件中。 然后 , 我们就等待吧 :)

08b-datFile.png

发送 Mochimo

导入一个外来的地址

对于这部分演示,我们将假装是我们来给我们新的朋友支付一些Mochimo。 我们用MCM预装了我们的 Mo Money 地址,以便能够发送给我们的朋友。

我们收到了他的地址的电子邮件,并将 JohnStack.dat 文件放在跟我们钱包一样的目录中,然后我们打开钱包。 现在我们需要导入他的 “foreign” 外来地址。 外来地址仅表示任何未在自己的钱包中创建的地址。

  1. 从钱包主菜单选择 3.
  2. 现在,我们选在 Import foreign tag (y/n)? 导入外来标签 上选 n。这里后面会再解释。
  3. 在我们的例子里,下一个问题的答案是:Import file name: JohnStack.dat
  4. Enter address name 栏里输入一个名字,以便你识别地址所指的内容,我们将其命名为与导入的文件相同的名字: JohnStack
  5. 这应该将外来地址导入我们的钱包并按顺序给它下一个索引号。 要查找分配了哪个索引号并查看是否可以看到地址的余额,我们使用选项 9 转到菜单的第二页,然后选择 3 Display foreign addresses 显示外部地址。
  6. 如果我们的朋友之前对写入余额问题的回答是肯定的,我们应该能够在这里看到,但更重要的是现在我们知道分配给我们刚导入的新地址的索引号。 在我们的示例中,索引号为 2.

09-importAddress.gif

给好友发送 MCM

  1. 现在我们来给好友发送一笔转账。首先返回主菜单然后选择 9 进入菜单第二页 Menu 2
  2. 我们选择 5 Spend address 花费地址
  3. 接下来,我们选择一个具有余额的地址索引来发送。 在我们的示例中,我们将选择索引 4,这是我们最初设置的 Mo Money 地址,并且已经由一些MCM余额。
  4. 选择我们将花费的地址后,我们会被要求选择目的地地址,钱包会自动显示您的外来地址,以防你忘记要发送的地址。 我们已经知道我们想要的索引,因为我们的目标地址 (JohnStack) 是 5, 所以在这里输入 5。如果我们想将我们的支出地址中的全部金额发送给您自己的找零地址,我们也可以在这里选择0。现在,我们将始终选择一个目的地地址。)
  1. 现在我们输入要发送的金额。这里要注意,提示 在Satoshi中输入发送金额(或为附表中的chi): 我们想在这个例中发送我们的朋友 1.5 MCM。 最简单的方法是输入以十亿计数的Satochi的数量,如下所示: 1500000000 无小数点!
    1. (钱包里面有一个错字。 我们使用 9 小数,正确的单位是Satochi - 而不是Satoshi)
      1. 便捷转换表格

Conversion-table-CN.png

  1. 钱包会显示你在Chi中输入的内容,并且正确放置小数。 发送金额 Send amount: 1.500000000 现在我们必须选择一个找零地址,在下一节中详细说明。

10a-Spend3.gif

选择一个变更后地址

注意: Mochimo 使用 Winternitz 一次性支付 (WOTS+) 地址。 每次从地址中发送时,该地址的一部分密匙都会泄露给公众。 因此,钱包要求您选择 Change address 变更后地址 以将找零发送到。 你永远不应该重复使用花费地址。 如果您从采矿地址发送(在采矿指南中有更多解释),您将不得不创建一个新的....

  1. 钱包会自动在此显示所有可用的变更后地址,并为您提供创建另一个变更后地址 Create another change address (y/n)? 对于本演示,我们将通过选择 y 来动态创建一个变更后地址。
  2. 现在我们需要给新的变更后地址一个名字。就叫它: New Money
  3. 选择 nAdd tag (y/n)? 是否添加标签这个问题上
  4. New Money 的地址就创建好了并且会给你一个索引号,在我们的演示中是 6
  5. 这里会再次提示你是否要创建另一个变更后地址 Create another change address (y/n)? 我们选择
n 在这,因为我们已经创建好了一个我们需要的地址了。
  1. 现在会问你要 Change address index 变更后地址索引号,在我们的 New Money 地址下是 6号。
  2. 这里显示固定交易费 0.000000500 MCM 并要求确认我们的交易。 一切看起来都正常! 我们说 y!
  3. 如果一切都成功的话,你现在应该看到 Sent! 发送

10b-ChangeAddress.gif

确认交易是否发送

  1. 我们现在等待下一个区块清除,MCM将发送到我们的朋友。 您可以关注www.mochimap.net上的当前区块(如下图所示)。 在顶部,你将看到 Best Block。 等待它更新到下一个区块。 或者也可以访问Mochimo Explorer 区块浏览器 https://bx.mochimo.org.

Mochimap.png

  1. 等下一个区块清除后,假设我们的朋友和我们共享了余额,这时候我们就可以返回 Foreign addresses外来地址去确认 JohnStack 的地址有没有收到 1.5 MCM.
  2. 在菜单 Menu 2 中选择 3 Display foreign addresses 查看外来地址然后查看 JohnStack 的余额。
  3. 一切看起来都非常好!

11b-ConfirmSent.gif

给矿工们的附加信息

矿工在创建钱包,地址和发送/接收的过程大致相同。 矿工的主要区别在于为挖矿而生成的地址。

先决条件:

挖掘需要在机器上安装CUDA,并在端口2095上启用端口转发。 链接到矿机指南 | 链接到端口转发说明

生产一个挖矿地址

按照 2.1 创建新钱包2.2 下载网络节点列表并启动钱包 中的相同步骤进行操作。

让我们按照 2.1 创建新钱包 的步骤并命名钱包文件 mining.wal ,创建好一个新钱包后然后使用以下命令打开钱包:

./wallet -p2095 mining.wal

系统将提示您输入密码。 如果您输入的内容不正确,系统将不会告诉您,但是当您打开钱包时,钱包顶部的名称会显示为乱码。 原因是钱包的密码是解密密钥并且不存储在钱包本身。 所以如果输入错误,钱包仍然会使用错误的密钥解密,结果将是乱码。 如果您选择的钱包名称显示在屏幕顶部,则表示您已正确输入了密码。 在我们的演示中,我们会看到顶部的 My Wallet

  1. 首先用选项 4 创建一个新的地址
  2. 系统会提示你输入一个名字,让我们叫它 mining address 挖矿地址
  3. 你会被提问是否要 "tag" 标签这个地址,这里回答 N

警告:你一定“不能” 在一个挖矿地址上加Tag标签。

  1. 该地址将被分配一个顺序高于您上一个地址的索引。 如果您还没有任何地址,那么这将是 index 1 索引1。

M01-minerAddress.gif

  1. 让我们检查以确保地址已成功创建。 选择选项 2 来显示你的地址录入记录。 如果你还没有任何币,“My addresses” 我的地址:将显示 “No entries” 没有录入。
  2. 选择选项 6 检查新地址的余额。 如果你还没有任何币,这里钱包将会显示 No entries 没有录入。
  3. 检查地址是否创建成果,选择选项 9 进入菜单2后选择选项 2 display change addresses 这是你应该会看到 mining address.

导出你的挖矿地址

现在让我们保存这个地址到一个 maddr.dat 的文件, 这样我们就可以开始挖矿并且让挖矿奖励保存在这个地址。

  1. 选择选项 7 导出地址。 你会被系统提示要选择一个index索引号码给你想要导出的地址。在这里我们的事索引 1, 因为这是我们唯一有的地址。输入 1 然后敲击回车。
  2. 你会被系统提示要选择一个文件名,这个文件名要输入: maddr.dat
  3. 你会被提示要写入余额。这里选择 N.
  4. 如果你是要覆盖一个挖矿地址,你会被告知maddr.dat的文件已经存在了。这里你会被要求输入 Y 来用你新的地址覆盖一个旧的挖矿地址。
  5. 输入 0 退出,去调用你的矿机

现在你已经准备好挖矿了!

M02-createmaddrdat.gif

覆盖你的挖矿地址

如果你计划从挖掘地址中直接花费使用,则在 4.3 选择选择一个找零地址 中创建变更后地址的时候需要按照 5.2 导出你的挖矿地址 中的步骤将变更后地址设置为新的maddr.dat挖掘地址。 完成后你应该在 mochimo/bin/ 目录中有一个新的 maddr.dat 文件。 你还需要将新的 maddr.dat 文件复制到我们矿工的 mochimo/bin/d/ 目录中。

Mochimo Tag 标签系统

不要给一个挖矿地址添加Tag标签
通过以上描述的步骤发将你的地址发送给你的朋友,这样并不是最理想的方法让他给你发送Mochimo。不过值得庆幸的是,WOTS+ 地址包含一个12字节地址的空间,并可以从一个地址传输到另外一个地址。我们之所以实施这个功能,就是让你只需要记住你的Tag标签。这样你就可以通过文字的形式把你的24个字符的标签直接发送给你的好友,他们可以可以通过导入在钱包里直接导入外来标签来给你发送MCM,就是这么的简单!

目前,如果想使用Tag标签的话我们建议使用我们的GUI钱包。查看 Mochimo Wiki 上的 Mojo 钱包快速入门指南 :)