挖矿
挖矿入门
SCDO主网简介
SCDO主网由四个分片组成,使用PoW工作量证明共识算法。每个分片的的行为类似一个区块链。尽管用户可以在一个分片内或两个不同的分片之间发送交易和事务,但挖矿节点(一个计算机程序)只能在一个分片中挖掘。为了挖掘SCDO token,您需要一个名为node的计算机程序和一个json格式的配置文件。配置文件包含两个关键元素:接收通证(token)奖励的地址-coinbase,以及用于SCDO p2p网络连接的唯一的私钥-privateKey。在接下来的几节中,我们将说明如何生成coinbase ,privateKey和编写一个配置文件。这些完成后,您就可以挖掘SCDO token了。
挖矿详细说明,请参考挖矿指南
下载
下载最新的可执行程序和配置文件模板。所提取的目录具有以下结构:
mac/linux/windows
├── node1.json //shard1 config template
├── node2.json //shard2 config template
├── node3.json //shard3 config template
├── node4.json //shard4 config template
└── build
├── client //client executable for getting info
├── discovery
├── light
├── node //node executable for running a SCDO network node
├── tool
└── vm在下一节中,我们的重点是如何通过编辑json配置模板,创建一个配置文件。该文件对于运行挖矿节点是必需的。我们使用linux环境和分片1(node1.json配置模板)作为示例(Mac / windows环境非常相似)。
我们用 $PATH_TO_NODE_CLIENT 表示到这些配置文件模板和可执行程序"node","client" 所在目录的路径。
创建配置文件
在文本编辑器中打开配置模板node1.json。其内容与以下同或类似:
目前为了创建一个配置文件,我们只需要替换basic部分中的coinbase和p2p部分中的privateKey即可.
为了生成coinbase 和 privateKey, 我们需要执行下面的命令行:
输出是:
用 1S0113339046e140620a05ab98abdfadedbbd99191 替换 basic 的 “coinbase”: 后面的字符串。 请保存私钥 0x75b032e8c53aea77288d46a7e2b508292d4b41a2b4f8ef265220535bb0012c45 在一个安全的地方,避免丢失或被盗. 你未来发送交易和事务时需要用到它。
再次执行相同的命令
输出是:
用 0x442603781c5ea6993aa880cd991fefb167bc4fe9e68c25d9e7148b9872f07d5b 替换p2p部分的 “privateKey”: 后面的字符串。 丢弃Account 字符串 1S018274d26bea7144a3d235620bc2ac6094e4f9d1。
我们得到下面的:
把它存到一个文件如 node1_1.json 或用个你喜欢的文件名字,但一定保留“json"文件格式。为了简单起见,我们还把这个文件存到 $PATH_TO_NODE_CLIENT目录之下。
你可能注意到每次执行 ./client key --shard # 都会给出不同的结果。这是对的。
你可用类似方式创建挖掘其他分片的配置文件。有关更多详细说明,请参看创建配置文件
运行挖矿节点
在启动挖矿节点之前,您的计算机必须连接到Internet。
执行下列命令:
在挖矿节点启动和运行之后, 日志信息将显示在计算机屏幕上。
注:数字8表示有8个线程并行挖掘。用户可以根据自己的机器性能更改此数。例如,如果你的计算机的CPU有16个内核,则可设此数16或更大的数。
当节点启动运行并已连接到SCDO网络时,可能需要几个小时才能将SCDO网络数据同步到该节点。 在节点的数据与SCDO网络的数据同步之后,该节点将开始挖掘区块并与SCDO网络中的其他节点竞争。
检查与SCDO网络的连接
节点启动并运行后,你可能需要检查该节点是否已连接到SCDO网络以便赢得SCDO通证。以下命令将执行此操作:
“ - -address”后面的字符串表示节点的IP和端口。在此示例中,你可以使用“ - -address localhost:8027”。分片1的默认端口是8027,分片2的默认端口是8028,分片3的默认端口是8029,分片4的默认端口是8026。由于节点在分片1中进行挖掘,下面是输出消息。
如果“ PeerCnt”不为零,则该节点已连接到SCDO网络。 数组(3 3 1 3)表示每个分片中来自SCDO网络的多少个节点连接到你的挖矿节点。例如,分片1中有3个节点,分片3中有1个节点连接到你的节点。
在挖矿节点已连接到同一分片中的至少一个其他节点之后,与SCDO网络/区块链数据的同步将开始。完成数据同步可能需要花费几个小时,具体取决于你的Internet连接速度。此后,将开始真正的挖掘。当你看到正在运行的节点的输出消息时,你会理解。
稍后,我们将显示仅用于运行数据同步的节点的选项。
查看账户余额
在挖矿节点启动一段时间后,你想看看你是否挖到SCDO通证(SCDO)。在本节中,我们说明如何查看。
配置文件中“ coinbase:”之后的十六进制格式字符串是你的挖矿帐户的地址。在我们的示例中,它是1S0113339046e140620a05ab98abdfadedbbd88191。
请执行如下命令:
输出如下面的样子:
实际的输出余额可能不同。
注: 余额单位是文(Wen)。 100,000,000 Wen = 1 SCDO. 因此在上面的输出了 400,000,000 Wen = 4 SCDO。
挖矿详细指南
SCDO网络和挖矿基本说明
SCDO网络是点对点(p2p)网络,网络所有节点分为4个分片。 SCDO区块链使用自己独特的工作量证明共识算法(命名为ZPoW)。该算法基于随机矩阵生成和行列式计算。 ZPoW是CPU友好的。从ZPoW的测试结果来看,我们没有发现GPU / ASIC芯片具有特殊优势。因此,任何拥有计算机的个体/组织可以挖掘SCDO区块链。奖励通证命名为SCDO。 SCDO的最小单位为WEN,1 SCDO = 100,000,000 WEN。
对于分片 n 中的每个挖矿节点:它保留一条局部链和3条轻链,用于存储信息或数据。挖矿节点将所有涉及本片账户的交易数据存储在局部链里。每条轻链存储其相关片的局部链的每个块的哈希值。例如,如果挖掘节点位于分片1中,则有一条局部链来存储所有与分片1中的帐户有关的交易数据(区块),使用三条轻链记录其他3个分片的局部链的区块哈希值。例如,轻链2存储了分片2的局部链中所有块的哈希值,等等。借助局部链和轻链,SCDO区块链可正常运行。
由于SCDO网络节点被划分为4个分片,帐户也是如此划分。帐户具有一对唯一的地址和私钥。该地址用于持有账户余额,私钥用于签署发出的交易。
为了挖掘SCDO,你需要创建一个(或多个)帐户。
一个挖矿节点只能在一个分片中运行,使用json文件来配置。
综上所述,为了运行一个挖矿节点,你需要:
账户 (一个地址和私钥匙对),
配置文件
同样,以下所有演示均是linux / unix环境。我们假设读者对操作系统有基本的了解。 MAC和Windows中命令的执行与linux / unix非常相似。
下载可执行文件(程序)
下载最新的 可执行文件和配置文件模板 。提取的目录具有以下结构:
对于挖矿,只需要可执行文件 node 和 client,并根据这些模板创建自己的配置文件。如果在分片1中挖矿,请使用node1.json作为模板。node2.json用于分片2,node3.json用于分片3,依此类推。
下载 SCDO 源码和编译
你可能需要根据源代码自行构建可执行文件。 从 源代码 下载源代码。按照 README.md 文件里的指示操作或转到 编译节点 一节.
配置文件模板应位于项目源代码目录中 $PROJECTRDIR/scdoproject/go-scdo/cmd/node/config, 这里 $PROJECTRDIR 是你机器上通往 scdoproject 的路径。
创建账户
帐户由一对唯一的地址和私钥标识。地址的前4个字符表示该帐户属于哪个分片。
假设我们已经在包含可执行文件 node 和 client 的目录之下。
通过执行命令,
片数可以是 1,2,3,4 中的任何一个,例如 执行:
得输出,
Account: 1S014f574f8b5749eff6d24f18640d820327c5daf1
Private key:0x1c18aaa42429e903aa4aba753e500e3e0061f7dbca6d1a2c6499b2226b72a0ec
注:地址(address)在输出里用 "Account" 标识。 前面4个字符标识账户(地址)属于哪个片。而且上述命令每一次的执行都会给出不同的结果。
执行 $ ./client keys --shard 2
输出是
Account: 2S0215ac0412394ec2fa4215b72602a70724bf9b11
Private key: 0x4e19191ed142c5fb9af0425b16399a09e35ef1e913d68e4fd1cbbb538de74d7d
你按自己的意愿可以生成多个账户。
通常,地址和私钥具有一一对应关系。由于SCDO有4个分片,因此允许你使用一个私钥来控制四个不同的帐户/地址,每个分片一个。也就是说有四个账户地址可以用同一个私钥。这四个账户(地址)是按如下方法生成的:
执行不带分片选项的上述命令行,将始终给出分片1中的一对地址和私钥:
输出为:
Account: 1S01f18fd1317001c81d9cb8346521cdd9f486bb41
Private key: 0xa94c7bb78579585a8b1d3346034fc124ace2e79ba80c3107fbb3d72be86dcb8f
我们前面提到过,“帐户”字符串中的前4个字符表示该帐户属于哪个分片。
如果编辑帐户字符串:>1S01f18fd1317001c81d9cb8346521cdd9f486bb41 的前四个字符,你可以得到如下三个不同的地址
2S02f18fd1317001c81d9cb8346521cdd9f486bb41
3S03f18fd1317001c81d9cb8346521cdd9f486bb41
4S04f18fd1317001c81d9cb8346521cdd9f486bb41
加上先前的一个,将有四对:
Account: 1S01f18fd1317001c81d9cb8346521cdd9f486bb41
Private key: 0xa94c7bb78579585a8b1d3346034fc124ace2e79ba80c3107fbb3d72be86dcb8f
Account:2S02f18fd1317001c81d9cb8346521cdd9f486bb41
Private key: 0xa94c7bb78579585a8b1d3346034fc124ace2e79ba80c3107fbb3d72be86dcb8f
Account: 3S03f18fd1317001c81d9cb8346521cdd9f486bb41
Private key: 0xa94c7bb78579585a8b1d3346034fc124ace2e79ba80c3107fbb3d72be86dcb8f
Account: 4S04f18fd1317001c81d9cb8346521cdd9f486bb41
Private key: 0xa94c7bb78579585a8b1d3346034fc124ace2e79ba80c3107fbb3d72be86dcb8f
这些都是SCDO中的有效帐户,并且具有相同的私钥0xa94c7bb78579585a8b1d3346034fc124ace2e79ba80c3107fbb3d72be86dcb8f。
不过,我们推荐每次通过执行下述命令行来生成不同帐户。
现在你知道如何生成一对地址(又称公钥)和私钥了。让我们继续下一个任务-创建配置文件。
创建配置文件
启动挖矿节点,必须有配置文件。我们将从配置模板开始,解释关键部分。然后,用户可通过编辑模板文件创建自己的配置文件。
配置文件模板
{ "basic": { "name": "scdo node1", // "version": "1.0", "dataDir": "Snode1", "address": "0.0.0.0:8027", "coinbase": "1S01cf0b32593068f2ace7c472d5f127d3422d3b61", "algorithm": "zpow" }, "p2p": { "privateKey": "0xf65e40c6809643b25ce4df33153da2f3338876f181f83d2281c6ac4a987b1479", "staticNodes": [ "74.208.207.184:8057", "74.208.207.184:8058", "74.208.207.184:8059", "74.208.207.184:8056", "74.208.136.152:8056", "74.208.136.152:8057", "74.208.136.152:8058", "74.208.136.152:8059" ],
配置模板文件的说明
basic 部分
"basic": { "name": "scdo node1", // "version": "1.0", "dataDir": "Snode1", "address": "0.0.0.0:8027", "coinbase": "1S01cf0b32593068f2ace7c472d5f127d3422d3b61", "algorithm": "zpow" }
"name": 节点名称, 标记. 你可使用任何名称,不过最好根据所在的片选择名称。这里表示是个片1的节点。
"version": SCDO发行版的版本号。它是你运行的node 的版本号。
"dataDir": 目录名字。该目录用于存储节点产生的数据,例如区块链数据,网络连接数据文件等。可以使用与“name”后面的字符串类似的名称。
"address": IP地址和端口号-节点的本地IP地址和端口号。执行 “client”命令时将使用此信息。对于分片1中的挖掘节点,端口号设置为8027(实际上,它可以是任何端口号,只要没有冲突即可)
"coinbase": 你的帐户地址。请参考 创建账户 如何生成地址(账户)和私钥. 然后用自己的账户替代coinbase后面的字符串。
"algorithm": "zpow" -- 不需要修改.
p2p 部分
"p2p": {
"privateKey": "0xf65e40c6809643b25ce4df33153da2f3338876f181f83d2281c6ac4a987b1479", "staticNodes": [ "74.208.207.184:8057", "74.208.207.184:8058", "74.208.207.184:8059", "74.208.207.184:8056", "74.208.136.152:8056", "74.208.136.152:8057", "74.208.136.152:8058", "74.208.136.152:8059" ], "address": "0.0.0.0:8057", "networkID": "scdo" },
The "privatekey": 它是你的节点的唯一网络标识符。你要通过命令“ ./client key ” 生成一个”Private key", 用它替换示例中”privateKey"后面的字符串。此私钥与你的帐户私钥无关。。另请参见 创建账户.
"staticNodes": 这些ip地址是你的挖矿节点尝试连接SCDO网络的起始节点。通常,你无需从模板中替换它们(以后可以添加更多)。端口号:8057用于分片1,8058分片2,8059分片3,8056分片4。这些静态节点通常由SCDO项目团队管理。它们用于SCDO区块链的数据同步。
"address": 节点的本地IP地址和端口号。如果你在分片1中挖矿,则端口号应为8057,依此类推。 如果其他挖掘节点想要连接你分片1的节点,使用的是这个端口号。
"networkID": 这是SCDO网络的ID。无需修改,否则将阻止你的挖矿节点加入SCDO网络。
配置模板其他部分
不需做任何修改。
编辑配置模板后,你可以将其保存为json格式的文件,例如node1_1.json(或不同名称,只是要记住是那个分片的即可)。
运行挖矿节点
执行下述命令
例如,使用我们前面一节创建的配置文件 node1_1.json,选取线程数为10, 命令将为:
如果这是你第一次执行该命令,则可能需要花费几个小时来同步所有SCDO 区块链的数据。如果使用以下选项,则效果会更好:
这样可以加快数据同步。
日志信息将逐行显示在屏幕上,你可以“pipe”这些到一个文件里,并将其保存,如果需要的话。如果你的节点和SCDO网络的连接已建立,它将很快开始与SCDO网络同步数据。
当同步数据完成后,你需要关停node, 然后把 “-m stop" 移除,重新开始。如果你的机器速度较快,CPU i7以上,网络宽带链接良好,应该有很大机会争得SCDO通证奖励。
检查与SCDO网络连接
在你的挖矿节点启动并运行之后,为了有机会赢得一些SCDO奖励,该节点必需连接到SCDO网络。另外,它应与每个分片中的节点建立连接,以保持与网络的稳定连接。
为了查看连接状况信息,请使用
”- -address” 之后的字符串表示节点的ip和端口。在此示例中,你可以省略它,因为默认值为0.0.0.0:8027(对于分片1), 你的节点在片1挖矿。输出结果与下面的类似:
"BlockAge": 23表示局部链最新区块挖出至今的时间。
"Coinbase": "1S011c9dab11f953875fafc374a641bdaf58488771", 你的挖矿账户地址.
"CurrentBlockHeight": 3339035, 局部链最新区块的高度。
"HeaderHash": "0x53edbf3f80e3ffeefcb28cf6070939df7ea46926e94502f5e60a96e7459790b0", 局部链的最新区块的哈希值,在我们的示例中为分片1的局部链块头。
"MinerStatus": "Running", 挖矿节点状态。
"PeerCnt": "10 (3 3 1 3)", 表示连接的节点总数为10。其中在片1,片2各三个,片3 一个、片4 三个。如果没有零,那非常好!
"Shard": 1, 表示片1挖矿。
如果你想了解有关连接的更多信息,请执行以下操作:
因为我们的节点在片1挖,可以省略ip 地址和port. 输出结果将类似于以下内容:
挖掘节点位于分片1中。让我们尝试理解上面的信息。输出结果由数据结构相同的多个部分组成。 这是其中之一:
上面告诉我们连接的远程节点属于分片1,其IP地址为“ 74.208.207.184:8057”。你现在可以忽略上述其他部分。
下节说明连接的远程节点属于分片4。
其他相似的部分具有类似的解释。
查账户余额
即使你的挖矿节点已完全连接到SCDO网络,也无法保证一定能赢得一些回报。您赢得的SCDO数量将取决于计算机的算力。例如,Intel i5处理器会比Intel i9慢。
执行以下命令查看余额:
你会从输出结果中看到余额。
注: 1S01cf0b32593068f2ace7c472d5f127d3422d3b61 -- 这将由您的配置文件中的coinbase替换。 0.0.0.0:8027 -- 这是分片1中你的挖矿节点的默认IP地址。它可以用分片1中的静态节点的IP地址代替。
编译可执行文件
首先,你需要在计算机上安装git,gcc和go(linux / mac / windows)软件包。
git 版本 2.17.1 或更新的版本.
gcc 版本 7.3.0 或更新的版本
go 版本 1.12.7 (这个版号不能变,因为SCDO使用了某些链接函数库)。
在主目录中创建路径 go/src/github.com/scdoproject。
下载 go-scdo
编译 go-scdo:
linux/mac环境:
所有可执行文件在 ./build 目录下。
对于Windows,在命令提示符下执行“ buildall.bat”,而不是“ make all”。
Last updated
Was this helpful?