Edit me

[TOC]

环境配置

多节点的测试需要四个节点,因此我们配置三个虚拟机地址。 首先获取主机这边的公钥信息(192.168.8.167):

pct@Chandler:~/go/src/github.com/ontio/ontology$ ./nodectl wallet -l
Password:
Wallet File: 'wallet.dat'
public key:    1202038895767b1a58682c0a38d23893371b223be93fae904aca158d7183d69955200b
hex address:  01b1a6569a557eafcccc71e0d02461fd4b601aea
base58 address:       TA8AVaA4Px7d4fwzgmXtRxgzi7Uavbhc4j

然后在虚拟机里创建新的钱包和客户端: 虚拟机1(192.168.89.128):

pct@ubuntu:~/ontio$ ./nodectl wallet --create --name wallet.dat --password pct
Wallet File: 'wallet.dat'
public key:    1202034a08f7d20c0feeb8a2d47cfcd7fd6809c92148cb4739d92dc88917927f18433d
hex address:  01ca5cdd56d99a0023166b337ffc7fd0d2c42330
base58 address:       TA8g6fK4vmicF4KG22DnUAF6RBwz75QSGE

虚拟机2(192.168.89.131):

pct@ubuntu:~/ontio$ ./nodectl wallet --create --name wallet.dat --password pct
Wallet File: 'wallet.dat'
public key:    1202038068a0e477f11239c0f1239edede1b3029ba2baf30aa4446714d78c7a1d44596
hex address:  01970fbda05051f703dd7d5b1551a0699a346cfe
base58 address:       TA7ceBoDK2cmbJbUDJHaRKva5XKhs2JxYJ

虚拟机3(192.168.89.130):

pct@ubuntu:~/ontio$ ./nodectl wallet --create --name wallet.dat --password pct
Wallet File: 'wallet.dat'
public key:    120202d3e130f06987330559c85cd120558f8b3d57c68fa088ebcabe748c6df322f073
hex address:  016dfa894769b8414cd99e676c041281e7fdaa9a
base58 address:       TA6mRhfS5dvPCAAHfgaB1LFos1uHXbdzPU

把这三个地址和公钥填充到配置文件中:

{
  "Configuration": {
    "Magic": 7630401,
    "Version": 23,
    "SeedList": [
        "192.168.8.167:20338",
    "192.168.89.128:20338",
        "192.168.89.131:20338",
    "192.168.89.130:20338"
    ],
    "Bookkeepers": [
        "1202038895767b1a58682c0a38d23893371b223be93fae904aca158d7183d69955200b",
        "1202034a08f7d20c0feeb8a2d47cfcd7fd6809c92148cb4739d92dc88917927f18433d",
        "1202038068a0e477f11239c0f1239edede1b3029ba2baf30aa4446714d78c7a1d44596",
        "120202d3e130f06987330559c85cd120558f8b3d57c68fa088ebcabe748c6df322f073"
    ],
    "HttpRestPort": 20334,
    "HttpWsPort":20335,
    "HttpJsonPort": 20336,
    "HttpLocalPort": 20337,
    "NodePort": 20338,
    "NodeConsensusPort": 20389,
    "PrintLevel": 0,
    "IsTLS": false,
    "MaxTransactionInBlock": 50000,
    "MultiCoreNum": 4,
    "ConsensusType":"dbft"
  }
}

节点启动

首先启动主节点,并查看打印信息:

2018/04/20 09:14:35.963037 [ERROR] GID 74, non TLS connect failed:  dial tcp 192.168.89.128:20338: getsockopt: connection refused
2018/04/20 09:14:35.963174 [ERROR] GID 76, non TLS connect failed:  dial tcp 192.168.89.130:20338: getsockopt: connection refused
2018/04/20 09:14:35.963277 [ERROR] GID 75, non TLS connect failed:  dial tcp 192.168.89.131:20338: getsockopt: connection refused

在我们没有启动虚拟机节点时会提示连接不上,这就是connectSeeds函数做的事情。 启动虚拟机节点1,此时主机节点有收到连接:

2018/04/20 09:16:47.969121 [DEBUG] GID 529, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:216 Message type: verack
2018/04/20 09:16:47.969139 [DEBUG] GID 529, github.com/ontio/ontology/net/message.verACK.Handle verack.go:51
2018/04/20 09:16:47.969152 [INFO ] GID 529, Node info:
2018/04/20 09:16:47.969166 [INFO ] GID 529,      state =  4
2018/04/20 09:16:47.969179 [INFO ] GID 529,      id = 0xcd2f7084a030212
2018/04/20 09:16:47.969193 [INFO ] GID 529,      addr =  192.168.89.128
2018/04/20 09:16:47.969216 [INFO ] GID 529,      conn =  &
2018/04/20 09:16:47.969232 [INFO ] GID 529,      cap =  [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
2018/04/20 09:16:47.969251 [INFO ] GID 529,      version =  0
2018/04/20 09:16:47.969265 [INFO ] GID 529,      services =  0
2018/04/20 09:16:47.969278 [INFO ] GID 529,      port =  20338
2018/04/20 09:16:47.969291 [INFO ] GID 529,      relay =  true
2018/04/20 09:16:47.969304 [INFO ] GID 529,      height =  0
2018/04/20 09:16:47.969317 [INFO ] GID 529,      conn cnt =  0

目前还未出块,接着启动节点2,此时主机节点已经连接了两个节点,但是还会打印下面消息等最后一个节点:

2018/04/20 09:20:05.996738 [DEBUG] GID 1, github.com/ontio/ontology/net/node.(*node).WaitForPeersStart node.go:477 WaitForPeersStart...

启动虚拟机3,这个时候从打印信息看是不断出块的,只是块信息未打印,可能是没有账单的原因,我们接下来转账试试:

2018/04/20 09:25:34.607802 [DEBUG] GID 4905, github.com/ontio/ontology/consensus/dbft.(*ConsensusContext).MakePayload consensus_context.go:130
2018/04/20 09:25:34.608012 [INFO ] GID 4905, Prepare Response finished
2018/04/20 09:25:34.608047 [DEBUG] GID 4905, github.com/ontio/ontology/consensus/dbft.(*DbftService).NewConsensusPayload dbft_service.go:357 has flag 'BlockGenerated'
2018/04/20 09:25:34.608071 [DEBUG] GID 4905, github.com/ontio/ontology/consensus/dbft.(*DbftService).NewConsensusPayload dbft_service.go:357 has flag 'BlockGenerated'
2018/04/20 09:25:34.608140 [DEBUG] GID 4905, github.com/ontio/ontology/consensus/dbft.(*DbftService).NewConsensusPayload dbft_service.go:357 has flag 'BlockGenerated'
2018/04/20 09:25:34.608167 [INFO ] GID 4905, dbft actor receives block complete event. block height=39, numtx=1
2018/04/20 09:25:34.608210 [INFO ] GID 4905, persist block: 37227cd61a3f7d74e12c690fd4947d3344bdbd43a1e5804f39d37cdc28e5fa88

转账:

pct@Chandler:~/go/src/github.com/ontio/ontology/bulid$ ./nodectl transfer --contract ff00000000000000000000000000000000000001 --value 10 --from 01b1a6569a557eafcccc71e0d02461fd4b601aea --to 01ca5cdd56d99a0023166b337ffc7fd0d2c42330 -p pct
1324ffc7885ce63054ba8aa92061e8f5ce9790619364bcd53a031a1ed9b8cb4c

从余额看转账是成功的:

pct@Chandler:~/go/src/github.com/ontio/ontology/bulid$ ./nodectl wallet -l --balance -p pct
Wallet File: 'wallet.dat'
public key:    1202038895767b1a58682c0a38d23893371b223be93fae904aca158d7183d69955200b
hex address:  01b1a6569a557eafcccc71e0d02461fd4b601aea
base58 address:       TA8AVaA4Px7d4fwzgmXtRxgzi7Uavbhc4j
ong: 0
ong_appove: 0
ont: 250000000
pct@Chandler:~/go/src/github.com/ontio/ontology/bulid$ ./nodectl wallet -l --balance -p pct
Wallet File: 'wallet.dat'
public key:    1202038895767b1a58682c0a38d23893371b223be93fae904aca158d7183d69955200b
hex address:  01b1a6569a557eafcccc71e0d02461fd4b601aea
base58 address:       TA8AVaA4Px7d4fwzgmXtRxgzi7Uavbhc4j
ont: 249999990
ong: 0
ong_appove: 1620000000000

节点的输出:

2018/04/20 09:44:30.769531 [DEBUG] GID 17542, github.com/ontio/ontology/txnpool/proc.(*TxActor).Receive txnpool_actor.go:96 txpool-tx actor Receives tx from  http sender
2018/04/20 09:44:30.769877 [DEBUG] GID 17589, github.com/ontio/ontology/validator/statefull.(*validator).Receive statefull_validator.go:66 statefull-validator: receive tx fa77d51e6d93f42dfcf2fdca7a2b311c028a1655ac7cb671b61b583ca38207ba
2018/04/20 09:44:30.770114 [DEBUG] GID 17590, github.com/ontio/ontology/txnpool/proc.(*VerifyRspActor).Receive txnpool_actor.go:242 txpool-verify actor:: Receives verify rsp message
2018/04/20 09:44:30.769941 [DEBUG] GID 17588, github.com/ontio/ontology/validator/stateless.(*validator).Receive stateless_validator.go:68 stateless-validator receive tx fa77d51e6d93f42dfcf2fdca7a2b311c028a1655ac7cb671b61b583ca38207ba
2018/04/20 09:44:30.770458 [DEBUG] GID 17591, github.com/ontio/ontology/txnpool/proc.(*VerifyRspActor).Receive txnpool_actor.go:242 txpool-verify actor:: Receives verify rsp message
2018/04/20 09:44:30.770553 [DEBUG] GID 17592, github.com/ontio/ontology/net/node.(*node).Xmit node.go:325
2018/04/20 09:44:30.770622 [DEBUG] GID 17592, github.com/ontio/ontology/net/node.(*node).Xmit node.go:331 TX transaction message
2018/04/20 09:44:30.770685 [DEBUG] GID 17592, github.com/ontio/ontology/net/message.NewTxn transaction.go:113
2018/04/20 09:44:30.770774 [DEBUG] GID 17592, github.com/ontio/ontology/net/message.NewTxn transaction.go:134 The message payload length is  209
2018/04/20 09:44:30.770898 [DEBUG] GID 17592, github.com/ontio/ontology/net/node.(*node).Tx link.go:312 TX buf length: 233
416e7474747800000000000000000000d1000000ee160efa00d1fe45d95a0000000000000000ff4d0000ff00000000000000000000000000000000000001087472616e736665722d00010001b1a6569a557eafcccc71e0d02461fd4b601aea01ca5cdd56d99a0023166b337ffc7fd0d2c42330010a000000000000000000000101231202038895767b1a58682c0a38d23893371b223be93fae904aca158d7183d69955200b010141011413349a119c9d2a4675135bac1aa45d2709ec441764ff6cca6a3b6fc4f1e60fe246e22e865d49885ce99470acad372af0f478c6bffb808ff55a75a6649b341f
2018/04/20 09:44:30.771062 [DEBUG] GID 17592, github.com/ontio/ontology/net/node.(*node).Tx link.go:312 TX buf length: 233
416e7474747800000000000000000000d1000000ee160efa00d1fe45d95a0000000000000000ff4d0000ff00000000000000000000000000000000000001087472616e736665722d00010001b1a6569a557eafcccc71e0d02461fd4b601aea01ca5cdd56d99a0023166b337ffc7fd0d2c42330010a000000000000000000000101231202038895767b1a58682c0a38d23893371b223be93fae904aca158d7183d69955200b010141011413349a119c9d2a4675135bac1aa45d2709ec441764ff6cca6a3b6fc4f1e60fe246e22e865d49885ce99470acad372af0f478c6bffb808ff55a75a6649b341f
2018/04/20 09:44:30.771253 [DEBUG] GID 17592, github.com/ontio/ontology/net/node.(*node).Tx link.go:312 TX buf length: 233
416e7474747800000000000000000000d1000000ee160efa00d1fe45d95a0000000000000000ff4d0000ff00000000000000000000000000000000000001087472616e736665722d00010001b1a6569a557eafcccc71e0d02461fd4b601aea01ca5cdd56d99a0023166b337ffc7fd0d2c42330010a000000000000000000000101231202038895767b1a58682c0a38d23893371b223be93fae904aca158d7183d69955200b010141011413349a119c9d2a4675135bac1aa45d2709ec441764ff6cca6a3b6fc4f1e60fe246e22e865d49885ce99470acad372af0f478c6bffb808ff55a75a6649b341f
2018/04/20 09:44:30.778239 [DEBUG] GID 17622, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:208 Received data len:  241
416e7474636f6e73656e737573000000d90000003176665f000000004f0c3892531a6e270e751297d39552afa1e83f7adf1bfbba2da48472bb0197a8e20000000000fe45d95a44210041015e1a925eef2cd0c0badf77e85f337e2ca32ed9e52e9eeacc4549d7020e49e743940afb7ccda1c57444a6bacea6902145bb123b7ff94305ad8ba993e546f1aa9123120202d3e130f06987330559c85cd120558f8b3d57c68fa088ebcabe748c6df322f0734101c1385cbf03bf9184ec028b5ff19818627090ebb1951a36c6ec2927fab24bd6b366aff8deb01328dbedac08ff2b8108704415506a47e34af871dbfc76fcad081f
2018/04/20 09:44:30.778301 [DEBUG] GID 17622, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:216 Message type: consensus
2018/04/20 09:44:30.778327 [DEBUG] GID 17622, github.com/ontio/ontology/net/message.(*consensus).Deserialization consensus.go:211
2018/04/20 09:44:30.778466 [DEBUG] GID 17622, github.com/ontio/ontology/net/message.consensus.Handle consensus.go:85
2018/04/20 09:44:30.783567 [DEBUG] GID 17593, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:208 Received data len:  380
416e7474636f6e73656e737573000000640100009700cc77000000004f0c3892531a6e270e751297d39552afa1e83f7adf1bfbba2da48472bb0197a8e20000000100fe45d95acf01000341018f175ce61438a902b90ae1b55e6386ef843df84df3e0fc8479b3df57b1ca0a517e47a75b475c432dd4294d8d772b54e8809dddba8006cb3e0c08eb7f4f4eece401004101f62fb98926128e81767868fb7df8a6a7f258055e8b4328bc2a1d7c06d93c741b16b59f295d9bc900dd7c04f80099a2ead2b0cd322ffa1222a573176e64392528020041016f116a4a673269340195a74111faca9588c51fabc3b880b44df2d00f08662ea2d4e777791999a9ca5d8c944998552121a0229ebb5e6bf8781ef46636f4a613a00300231202034a08f7d20c0feeb8a2d47cfcd7fd6809c92148cb4739d92dc88917927f18433d4101c9c39bb9bcee36b3869fdb8e969a067dc2e2de7db8950a3dd9f88b81f71f86c31400a49e55b3bc8a485290623ccf6cf1b7c81d4d2119480c54c85ae3236a7a37
2018/04/20 09:44:30.783737 [DEBUG] GID 17593, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:216 Message type: consensus
2018/04/20 09:44:30.783772 [DEBUG] GID 17593, github.com/ontio/ontology/net/message.(*consensus).Deserialization consensus.go:211
2018/04/20 09:44:30.783995 [DEBUG] GID 17593, github.com/ontio/ontology/net/message.consensus.Handle consensus.go:85
2018/04/20 09:44:30.788421 [DEBUG] GID 17594, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:208 Received data len:  380
416e7474636f6e73656e73757300000064010000154315e4000000004f0c3892531a6e270e751297d39552afa1e83f7adf1bfbba2da48472bb0197a8e20000000200fe45d95acf01000341018f175ce61438a902b90ae1b55e6386ef843df84df3e0fc8479b3df57b1ca0a517e47a75b475c432dd4294d8d772b54e8809dddba8006cb3e0c08eb7f4f4eece401004101f62fb98926128e81767868fb7df8a6a7f258055e8b4328bc2a1d7c06d93c741b16b59f295d9bc900dd7c04f80099a2ead2b0cd322ffa1222a573176e64392528020041016f116a4a673269340195a74111faca9588c51fabc3b880b44df2d00f08662ea2d4e777791999a9ca5d8c944998552121a0229ebb5e6bf8781ef46636f4a613a00300231202038068a0e477f11239c0f1239edede1b3029ba2baf30aa4446714d78c7a1d44596410192596f15b2d8a139fa05766e520ecee376369678070601bae903a034ae789cba6f58bb0d696cc38eaa0e1b4e6cc1389eec4ac7fa22fe2c0170d9d5e842550d30
2018/04/20 09:44:30.788728 [DEBUG] GID 17594, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:216 Message type: consensus
2018/04/20 09:44:30.788768 [DEBUG] GID 17594, github.com/ontio/ontology/net/message.(*consensus).Deserialization consensus.go:211
2018/04/20 09:44:30.788852 [DEBUG] GID 17623, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:208 Received data len:  61
416e7474696e76000000000000000000250000003f457ebc020100000073564b1432f405d09c6ed1798d31c42874f97b01c912f0c465a0b18a088adaf4
2018/04/20 09:44:30.788919 [DEBUG] GID 17623, github.com/ontio/ontology/net/message.HandleNodeMsg message.go:216 Message type: inv
2018/04/20 09:44:30.788925 [DEBUG] GID 17594, github.com/ontio/ontology/net/message.consensus.Handle consensus.go:85
2018/04/20 09:44:30.788947 [DEBUG] GID 17623, github.com/ontio/ontology/net/message.Inv.Handle inventory.go:129
2018/04/20 09:44:30.788973 [DEBUG] GID 17623, github.com/ontio/ontology/net/message.Inv.Handle inventory.go:135 The inv type: 0x2 block len: 32, 73564b1432f405d09c6ed1798d31c42874f97b01c912f0c465a0b18a088adaf4

2018/04/20 09:44:30.788998 [DEBUG] GID 17623, github.com/ontio/ontology/net/message.Inv.Handle inventory.go:146 RX block message
2018/04/20 09:44:30.789028 [DEBUG] GID 17623, github.com/ontio/ontology/net/message.Inv.Handle inventory.go:147 RX inv-block message, hash is  [115 86 75 20 50 244 5 208 156 110 209 121 141 49 196 40 116 249 123 1 201 18 240 196 101 160 177 138 8 138 218 244]
2018/04/20 09:44:30.793099 [DEBUG] GID 17624, github.com/ontio/ontology/txnpool/proc.(*TxPoolActor).Receive txnpool_actor.go:200 txpool actor Receives block complete event from  nonhost/DefPublisherActor
2018/04/20 09:44:30.793426 [DEBUG] GID 17624, github.com/ontio/ontology/txnpool/common.(*TXPool).CleanTransactionList transaction_pool.go:101 [cleanTransactionList],transaction 0 Requested,0 cleaned, Remains 1 in TxPool
2018/04/20 09:44:30.793364 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*ConsensusContext).MakeBlockSignatures consensus_context.go:166
2018/04/20 09:44:30.793483 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*ConsensusContext).MakePayload consensus_context.go:130
2018/04/20 09:44:30.793641 [INFO ] GID 17620, Prepare Response finished
2018/04/20 09:44:30.793678 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*DbftService).NewConsensusPayload dbft_service.go:357 has flag 'BlockGenerated'
2018/04/20 09:44:30.793701 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*DbftService).NewConsensusPayload dbft_service.go:357 has flag 'BlockGenerated'
2018/04/20 09:44:30.793765 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*DbftService).NewConsensusPayload dbft_service.go:357 has flag 'BlockGenerated'
2018/04/20 09:44:30.793791 [INFO ] GID 17620, dbft actor receives block complete event. block height=226, numtx=1
2018/04/20 09:44:30.793819 [INFO ] GID 17620, persist block: 73564b1432f405d09c6ed1798d31c42874f97b01c912f0c465a0b18a088adaf4
2018/04/20 09:44:30.793856 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*DbftService).InitializeConsensus dbft_service.go:286 [InitializeConsensus] Start InitializeConsensus.
2018/04/20 09:44:30.793886 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*DbftService).InitializeConsensus dbft_service.go:284 [InitializeConsensus] viewNum:  0
2018/04/20 09:44:30.793915 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*ConsensusContext).MakeHeader consensus_context.go:97
2018/04/20 09:44:30.793955 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*ConsensusContext).Reset consensus_context.go:227 bookkeepers number: 4
2018/04/20 09:44:30.793984 [DEBUG] GID 17620, github.com/ontio/ontology/consensus/dbft.(*ConsensusContext).Reset consensus_context.go:230 this node is bookkeeper 3
2018/04/20 09:44:30.793734 [DEBUG] GID 17627, github.com/ontio/ontology/net/node.(*node).Xmit node.go:325
2018/04/20 09:44:30.794028 [DEBUG] GID 17627, github.com/ontio/ontology/net/node.(*node).Xmit node.go:348 TX consensus message
2018/04/20 09:44:30.794058 [DEBUG] GID 17627, github.com/ontio/ontology/net/message.NewConsensus consensus.go:223
2018/04/20 09:44:30.794130 [DEBUG] GID 17627, github.com/ontio/ontology/net/message.NewConsensus consensus.go:243 NewConsensus The message payload length is  356
Tags: