挖矿

挖矿入门

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": {
        "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"
        ],
        "address": "0.0.0.0:8057",
        "networkID": "scdo"
    },
    "log": {
        "isDebug": false,
        "printLog": true
    },
    "httpServer": {
        "address": "0.0.0.0:8037",
        "crossorigins": [
            "*"
        ],
        "whiteHost": [
            "*"
        ]
    },
    "wsserver": {
        "address": "0.0.0.0:8047",
        "crossorigins": [
            "*"
        ]
    },
    "ipcconfig": {
        "name": "scdo1.ipc"
    },
    "metrics": {
        "address": "0.0.0.0:8087",
        "duration": 10,
        "database": "influxdb",
        "username": "test",
        "password": "test123"
    },
    "genesis": {
        "difficult": 1900000,
        "shard": 1,
        "timestamp": 1596942480
    }
}

目前为了创建一个配置文件,我们只需要替换basic部分中的coinbase和p2p部分中的privateKey即可.

为了生成coinbase 和 privateKey, 我们需要执行下面的命令行:

$ $PATH_TO_NODE_CLIENT/client key --shard 1

输出是:

Account:  1S0113339046e140620a05ab98abdfadedbbd88191
Private key: 0x75b032e8c53aea77288d46a7e2b508292d4b41a2b4f8ef265220535bb0012c45

用 1S0113339046e140620a05ab98abdfadedbbd99191 替换 basic 的 “coinbase”: 后面的字符串。 请保存私钥 0x75b032e8c53aea77288d46a7e2b508292d4b41a2b4f8ef265220535bb0012c45 在一个安全的地方,避免丢失或被盗. 你未来发送交易和事务时需要用到它。

再次执行相同的命令

$ $PATH_TO_NODE_CLIENT/client key --shard 1

输出是:

Account:  1S018274d26bea7144a3d235620bc2ac6094e4f9d1
Private key: 0x442603781c5ea6993aa880cd991fefb167bc4fe9e68c25d9e7148b9872f07d5b

用 0x442603781c5ea6993aa880cd991fefb167bc4fe9e68c25d9e7148b9872f07d5b 替换p2p部分的 “privateKey”: 后面的字符串。 丢弃Account 字符串 1S018274d26bea7144a3d235620bc2ac6094e4f9d1。

我们得到下面的:

     "basic": {
            "name": "scdo node1",
            "version": "1.0",
            "dataDir": "Snode1",
            "address": "0.0.0.0:8027",
            "coinbase": "1S0113339046e140620a05ab98abdfadedbbd88191",
            "algorithm": "zpow"
        },
        "p2p": {
            "privateKey": "0x442603781c5ea6993aa880cd991fefb167bc4fe9e68c25d9e7148b9872f07d5b",
            "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"
        },
        "log": {
            "isDebug": false,
            "printLog": true
        },
        "httpServer": {
            "address": "0.0.0.0:8037",
            "crossorigins": [
                "*"
            ],
            "whiteHost": [
                "*"
            ]
        },
        "wsserver": {
            "address": "0.0.0.0:8047",
            "crossorigins": [
                "*"
            ]
        },
        "ipcconfig": {
            "name": "scdo1.ipc"
        },
        "metrics": {
            "address": "0.0.0.0:8087",
            "duration": 10,
            "database": "influxdb",
            "username": "test",
            "password": "test123"
        },
        "genesis": {
            "difficult": 1900000,
            "shard": 1,
            "timestamp": 1596942480
        }
    }

把它存到一个文件如 node1_1.json 或用个你喜欢的文件名字,但一定保留“json"文件格式。为了简单起见,我们还把这个文件存到 $PATH_TO_NODE_CLIENT目录之下。

你可能注意到每次执行 ./client key --shard # 都会给出不同的结果。这是对的。

你可用类似方式创建挖掘其他分片的配置文件。有关更多详细说明,请参看创建配置文件

运行挖矿节点

在启动挖矿节点之前,您的计算机必须连接到Internet。

执行下列命令:

$ $PATH_TO_NODE_CLIENT/node start -c $PATH_TO_NODE_CLIENT/node1_1.json --threads 8

在挖矿节点启动和运行之后, 日志信息将显示在计算机屏幕上。

注:数字8表示有8个线程并行挖掘。用户可以根据自己的机器性能更改此数。例如,如果你的计算机的CPU有16个内核,则可设此数16或更大的数。

当节点启动运行并已连接到SCDO网络时,可能需要几个小时才能将SCDO网络数据同步到该节点。 在节点的数据与SCDO网络的数据同步之后,该节点将开始挖掘区块并与SCDO网络中的其他节点竞争。

检查与SCDO网络的连接

节点启动并运行后,你可能需要检查该节点是否已连接到SCDO网络以便赢得SCDO通证。以下命令将执行此操作:

$ $PATH_TO_NODE_CLIENT/client getinfo --address ip:port

“ - -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个节点连接到你的节点。

{
        "BlockAge": 23,
        "Coinbase": "1S011c9dab11f953875fafc374a641bdaf58488771",
        "CurrentBlockHeight": 3339035,
        "HeaderHash": "0x53edbf3f80e3ffeefcb28cf6070939df7ea46926e94502f5e60a96e7459790b0",
        "MinerStatus": "Running",
        "PeerCnt": "10 (3 3 1 3)",
        "Shard": 1,
        "Version": "Scdo_V1.0.0"
    }

在挖矿节点已连接到同一分片中的至少一个其他节点之后,与SCDO网络/区块链数据的同步将开始。完成数据同步可能需要花费几个小时,具体取决于你的Internet连接速度。此后,将开始真正的挖掘。当你看到正在运行的节点的输出消息时,你会理解。

稍后,我们将显示仅用于运行数据同步的节点的选项。

查看账户余额

在挖矿节点启动一段时间后,你想看看你是否挖到SCDO通证(SCDO)。在本节中,我们说明如何查看。

配置文件中“ coinbase:”之后的十六进制格式字符串是你的挖矿帐户的地址。在我们的示例中,它是1S0113339046e140620a05ab98abdfadedbbd88191。

请执行如下命令:

$ $PATH_TO_NODE_CLIENT/client getbalance --account  1S0113339046e140620a05ab98abdfadedbbd88191 --address 0.0.0.0:8027

输出如下面的样子:

{
        "Account": "1S0113339046e140620a05ab98abdfadedbbd88191",
        "Balance": 400000000
}

实际的输出余额可能不同。

注: 余额单位是文(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文件来配置。

综上所述,为了运行一个挖矿节点,你需要:

  1. 账户 (一个地址和私钥匙对),

  2. 配置文件

同样,以下所有演示均是linux / unix环境。我们假设读者对操作系统有基本的了解。 MAC和Windows中命令的执行与linux / unix非常相似。

下载可执行文件(程序)

下载最新的 可执行文件和配置文件模板 。提取的目录具有以下结构:

    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 node
        ├── tool
        └── vm

对于挖矿,只需要可执行文件 nodeclient,并根据这些模板创建自己的配置文件。如果在分片1中挖矿,请使用node1.json作为模板。node2.json用于分片2,node3.json用于分片3,依此类推。

下载 SCDO 源码和编译

你可能需要根据源代码自行构建可执行文件。 从 源代码 下载源代码。按照 README.md 文件里的指示操作或转到 编译节点 一节.

配置文件模板应位于项目源代码目录中 $PROJECTRDIR/scdoproject/go-scdo/cmd/node/config, 这里 $PROJECTRDIR 是你机器上通往 scdoproject 的路径。

创建账户

帐户由一对唯一的地址和私钥标识。地址的前4个字符表示该帐户属于哪个分片。

假设我们已经在包含可执行文件 nodeclient 的目录之下。

通过执行命令,

$ ./client key --shard [option shard number]

片数可以是 1,2,3,4 中的任何一个,例如 执行:

$ ./client key --shard 1

得输出,

Account: 1S014f574f8b5749eff6d24f18640d820327c5daf1

Private key:0x1c18aaa42429e903aa4aba753e500e3e0061f7dbca6d1a2c6499b2226b72a0ec

注:地址(address)在输出里用 "Account" 标识。 前面4个字符标识账户(地址)属于哪个片。而且上述命令每一次的执行都会给出不同的结果。

执行 $ ./client keys --shard 2

输出是

Account: 2S0215ac0412394ec2fa4215b72602a70724bf9b11

Private key: 0x4e19191ed142c5fb9af0425b16399a09e35ef1e913d68e4fd1cbbb538de74d7d

你按自己的意愿可以生成多个账户。

通常,地址和私钥具有一一对应关系。由于SCDO有4个分片,因此允许你使用一个私钥来控制四个不同的帐户/地址,每个分片一个。也就是说有四个账户地址可以用同一个私钥。这四个账户(地址)是按如下方法生成的:

执行不带分片选项的上述命令行,将始终给出分片1中的一对地址和私钥:

$ ./client key  

输出为:

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。

不过,我们推荐每次通过执行下述命令行来生成不同帐户。

$ ./client key --shard [option]

现在你知道如何生成一对地址(又称公钥)和私钥了。让我们继续下一个任务-创建配置文件。

创建配置文件

启动挖矿节点,必须有配置文件。我们将从配置模板开始,解释关键部分。然后,用户可通过编辑模板文件创建自己的配置文件。

配置文件模板

{ "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" ],

           "address": "0.0.0.0:8057",
           "networkID": "scdo"
       },
       "log": {
           "isDebug": false,
           "printLog": true
       },
       "httpServer": {
           "address": "0.0.0.0:8037",
           "crossorigins": [
               "*"
           ],
           "whiteHost": [
               "*"
           ]
       },
       "wsserver": {
           "address": "0.0.0.0:8047",
           "crossorigins": [
               "*"
           ]
       },
       "ipcconfig": {
           "name": "scdo1.ipc"
       },
       "metrics": {
           "address": "0.0.0.0:8087",
           "duration": 10,
           "database": "influxdb",
           "username": "test",
           "password": "test123"
       },
       "genesis": {
           "difficult": 1900000,
           "shard": 1,
           "timestamp": 1596942480
       }
   }
   

配置模板文件的说明

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(或不同名称,只是要记住是那个分片的即可)。

运行挖矿节点

执行下述命令

 $ ./node start -c [配置文件名] --threads [线程数] 

例如,使用我们前面一节创建的配置文件 node1_1.json,选取线程数为10, 命令将为:

$ ./node start -c ./node1_1.json --threads 10 

如果这是你第一次执行该命令,则可能需要花费几个小时来同步所有SCDO 区块链的数据。如果使用以下选项,则效果会更好:

       $ ./node start -c ./node1_1.json --threads 10 -m stop

这样可以加快数据同步。

日志信息将逐行显示在屏幕上,你可以“pipe”这些到一个文件里,并将其保存,如果需要的话。如果你的节点和SCDO网络的连接已建立,它将很快开始与SCDO网络同步数据。

当同步数据完成后,你需要关停node, 然后把 “-m stop" 移除,重新开始。如果你的机器速度较快,CPU i7以上,网络宽带链接良好,应该有很大机会争得SCDO通证奖励。

检查与SCDO网络连接

在你的挖矿节点启动并运行之后,为了有机会赢得一些SCDO奖励,该节点必需连接到SCDO网络。另外,它应与每个分片中的节点建立连接,以保持与网络的稳定连接。

为了查看连接状况信息,请使用

$ ./client getinfo [--address ip:port]

”- -address” 之后的字符串表示节点的ip和端口。在此示例中,你可以省略它,因为默认值为0.0.0.0:8027(对于分片1), 你的节点在片1挖矿。输出结果与下面的类似:

    {
        "BlockAge": 23,
        "Coinbase": "1S011c9dab11f953875fafc374a641bdaf58488771",
        "CurrentBlockHeight": 3339035,
        "HeaderHash": "0x53edbf3f80e3ffeefcb28cf6070939df7ea46926e94502f5e60a96e7459790b0",
        "MinerStatus": "Running",
        "PeerCnt": "10 (3 3 1 3)",
        "Shard": 1,
        "Version": "Scdo_V1.0.0"
    }

"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挖矿。

如果你想了解有关连接的更多信息,请执行以下操作:

$ ./client p2p peersinfo [--address ip:port]

因为我们的节点在片1挖,可以省略ip 地址和port. 输出结果将类似于以下内容:

[
        {
            "caps": [
                "lightScdo_3/1",
                "lightScdo_4/1",
                "scdo/1",
                "lightScdo_1/1",
                "lightScdo_2/1"
            ],
            "id": "1S01759e0cbd1b801508924e90e35dc9c70bd601e1",
            "network": {
                "localAddress": "192.168.1.38:44056",
                "remoteAddress": "74.208.207.184:8057"
            },
            "protocols": {
                "lightScdo_1": "handshake",
                "lightScdo_2": "handshake",
                "lightScdo_3": "handshake",
                "lightScdo_4": "handshake",
                "scdo": {
                    "difficulty": 1696077961295,
                    "head": "f7b699259bca687a4760d96e8ea08a4ccf607bbdc99cd4432aaf1f534a60e471",
                    "version": 1
                }
            },
            "shard": 1
        },
        {
            "caps": [
                "lightScdo_4/1",
                "scdo/1",
                "lightScdo_1/1",
                "lightScdo_2/1",
                "lightScdo_3/1"
            ],
            "id": "2S024fdf4e2f59eb5fc16837c8419d971e17f99551",
            "network": {
                "localAddress": "192.168.1.38:47118",
                "remoteAddress": "74.208.136.152:8058"
            },
            "protocols": {
                "lightScdo_1": {
                    "difficulty": 1687915773901,
                    "head": "5128f82743db7b3d9dc9a45cb4ff717fa3dae9c796f65daa83c28da41fd6f14b",
                    "version": 1
                },
                "lightScdo_2": {
                    "difficulty": 1714829896315,
                    "head": "5a2f49eaf3e144f514b68be0e7c4924448404429cb0e966e803ab560",
                    "version": 1
                },
                "lightScdo_3": "handshake",
                "lightScdo_4": "handshake",
                "scdo": {
                    "difficulty": 1714829896315,
                    "head": "be33c8405a2f49eaf3e144f514b68be0e7c4924448404429cb0e966e803ab560",
                    "version": 1
                }
            },
            "shard": 2
        },
        {
            "caps": [
                "lightScdo_1/1",
                "lightScdo_2/1",
                "lightScdo_3/1",
                "lightScdo_4/1",
                "scdo/1"
            ],
            "id": "2S02b486bcfdc07ea6417225721dbfe0246325c7a1",
            "network": {
                "localAddress": "192.168.1.38:57300",
                "remoteAddress": "74.208.207.184:8058"
            },
            "protocols": {
                "lightScdo_1": {
                    "difficulty": 1687784917421,
                    "head": "6ddd3de03021a3aecbdd3dbd286d743d394b0d6a20f15dbc7c32b0699edd46ba",
                    "version": 1
                },
                "lightScdo_2": {
                    "difficulty": 1714824520587,
                    "head": "fe904ca61847dad5182e8b6dc95303db5b33b84048d47528b44aa0a32911af79",
                    "version": 1
                },
                "lightScdo_3": "handshake",
                "lightScdo_4": "handshake",
                "scdo": {
                    "difficulty": 1714824520587,
                    "head": "fe904ca61847dad5182e8b6dc95303db5b33b84048d47528b44aa0a32911af79",
                    "version": 1
                }
            },
            "shard": 2
        },
        {scdorand_linux_amd64.a
            "caps": [
                "lightScdo_2/1",
                "lightScdo_3/1",
                "lightScdo_4/1",
                "scdo/1",
                "lightScdo_1/1"
            ],
            "id": "2S02d83dc671800300f80546b8cacd266bca9cab41",
            "network": {
                "localAddress": "192.168.1.38:47876",
                "remoteAddress": "109.228.36.218:8058"
            },
            "protocols": {
                "lightScdo_1": {
                    "difficulty": 1687759712020,
                    "head": "8d1fca279d826d85eba52a9f38fdac73390aa549853451a489b2729734bb0369",
                    "version": 1
                },
                "lightScdo_2": {
                    "difficulty": 1714829896315,
                    "head": "be33c8405a2f49eaf3e144f514b68be0e7c4924448404429cb0e966e803ab560",
                    "version": 1
                },
                "lightScdo_3": "handshake",
                "lightScdo_4": "handshake",
                "scdo": {
                    "difficulty": 1714829896315,
                    "head": "be33c8405a2f49eaf3e144f514b68be0e7c4924448404429cb0e966e803ab560",
                    "version": 1
                }
            },
            "shard": 2
        },
        {
            "caps": [
                "lightScdo_4/1",
                "scdo/1",
                "lightScdo_1/1",
                "lightScdo_2/1",
                "lightScdo_3/1"
            ],
            "id": "3S03c3fe4ba31da9246c065c4e15a93e9ae71c67b1",
            "network": {
                "localAddress": "192.168.1.38:41990",
                "remoteAddress": "74.208.207.184:8059"
            },
            "protocols": {
                "lightScdo_1": {
                    "difficulty": 1687794976919,
                    "head": "16f4a62b766dd6c1b6ba9324993d2f6b883fb4e21e57da117955ee8ed98ee5fc",
                    "version": 1
                },
                "lightScdo_2": "handshake",
                "lightScdo_3": {
                    "difficulty": 1701944364685,
                    "head": "1399e67ef78aa19d3a4ffa99784fc276675d9906e8a837f29ae2bd4b520fe4a1",
                    "version": 1
                },
                "lightScdo_4": "handshake",
                "scdo": {
                    "difficulty": 1701944364685,
                    "head": "1399e67ef78aa19d3a4ffa99784fc276675d9906e8a837f29ae2bd4b520fe4a1",
                    "version": 1
                }
            },
            "shard": 3
        },
        {
            "caps": [
                "lightScdo_1/1",
                "lightScdo_2/1",
                "lightScdo_3/1",
                "lightScdo_4/1",
                "scdo/1"
            ],
            "id": "4S04f17b6fc55cc58017aad9c5b33abeee5b1dbb41",
            "network": {
                "localAddress": "192.168.1.38:42890",
                "remoteAddress": "104.254.244.44:8056"
            },
            "protocols": {
                "lightScdo_1": {
                    "difficulty": 1685204026183,
                    "head": "c704b010291d3a2c25ebfe8f7123c088a177feed77c7d55c06a78d02bc62ca3d",
                    "version": 1
                },
                "lightScdo_2": "handshake",
                "lightScdo_3": "handshake",
                "lightScdo_4": {
                    "difficulty": 1704245912720,
                    "head": "0017ced433cb1fa47045110f7fffca291291c33b0e842057f4fc2cbc33e42c83",
                    "version": 1
                },
                "scdo": {
                    "difficulty": 1704245912720,
                    "head": "0017ced433cb1fa47045110f7fffca291291c33b0e842057f4fc2cbc33e42c83",
                    "version": 1
                }
            },
            "shard": 4
        }
]

挖掘节点位于分片1中。让我们尝试理解上面的信息。输出结果由数据结构相同的多个部分组成。 这是其中之一:

{
                "caps": [
                    "lightScdo_3/1",
                    "lightScdo_4/1",
                    "scdo/1",
                    "lightScdo_1/1",
                    "lightScdo_2/1"
                ],
                "id": "1S01759e0cbd1b801508924e90e35dc9c70bd601e1",
                "network": {
                    "localAddress": "192.168.1.38:44056",
                    "remoteAddress": "74.208.207.184:8057"
                },
                "protocols": {
                    "lightScdo_1": "handshake",
                    "lightScdo_2": "handshake",
                    "lightScdo_3": "handshake",
                    "lightScdo_4": "handshake",
                    "scdo": {
                        "difficulty": 1696077961295,
                        "head": "f7b699259bca687a4760d96e8ea08a4ccf607bbdc99cd4432aaf1f534a60e471",
                        "version": 1
                    }
                },
                "shard": 1
            },

上面告诉我们连接的远程节点属于分片1,其IP地址为“ 74.208.207.184:8057”。你现在可以忽略上述其他部分。

下节说明连接的远程节点属于分片4。

{
            "caps": [
                "lightScdo_1/1",
                "lightScdo_2/1",
                "lightScdo_3/1",
                "lightScdo_4/1",
                "scdo/1"
            ],
            "id": "4S04f17b6fc55cc58017aad9c5b33abeee5b1dbb41",
            "network": {
                "localAddress": "192.168.1.38:42890",
                "remoteAddress": "104.254.244.44:8056"
            },
            "protocols": {
                "lightScdo_1": {
                    "difficulty": 1685204026183,
                    "head": "c704b010291d3a2c25ebfe8f7123c088a177feed77c7d55c06a78d02bc62ca3d",
                    "version": 1
                },
                "lightScdo_2": "handshake",
                "lightScdo_3": "handshake",
                "lightScdo_4": {
                    "difficulty": 1704245912720,
                    "head": "0017ced433cb1fa47045110f7fffca291291c33b0e842057f4fc2cbc33e42c83",
                    "version": 1
                },
                "scdo": {
                    "difficulty": 1704245912720,
                    "head": "0017ced433cb1fa47045110f7fffca291291c33b0e842057f4fc2cbc33e42c83",
                    "version": 1
                }
            },
            "shard": 4
        }

其他相似的部分具有类似的解释。

查账户余额

即使你的挖矿节点已完全连接到SCDO网络,也无法保证一定能赢得一些回报。您赢得的SCDO数量将取决于计算机的算力。例如,Intel i5处理器会比Intel i9慢。

执行以下命令查看余额:

$ ./client getbalance --account 1S01cf0b32593068f2ace7c472d5f127d3422d3b61 --address 0.0.0.0:8027  

你会从输出结果中看到余额。

注: 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

~$ cd 
~$ cd go/src/github.com/scdoproject
~$ git clone https://github.com/scdoproject/go-scdo.git

Cloning into 'go-scdo'...
remote: Enumerating objects: 53, done.
remote: Counting objects: 100% (53/53), done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 10032 (delta 13), reused 15 (delta 4), pack-reused 9979
Receiving objects: 100% (10032/10032), 12.25 MiB | 18.45 MiB/s, done.
Resolving deltas: 100% (5804/5804), done.

编译 go-scdo:

linux/mac环境:

~$ cd go-scdo
~$ make all

go build -o ./build/discovery ./cmd/discovery
Done discovery building
go build -o ./build/node ./cmd/node 
Done node building
go build -o ./build/client ./cmd/client
Done full node client building
go build -o ./build/light ./cmd/client/light
Done light node client building
go build -o ./build/tool ./cmd/tool
Done tool building
go build -o ./build/vm ./cmd/vm
Done vm building

所有可执行文件在 ./build 目录下。

对于Windows,在命令提示符下执行“ buildall.bat”,而不是“ make all”。

Last updated