Try   HackMD

nem catapult.server 実行

catapult-docker

clone

どちらかを使わせて頂く

# git clone https://github.com/44uk/catapult-docker
# git clone https://github.com/daoka/catapult-docker

build

一時間くらい必要です

# cd catapult-docker
# docker build -t catapult:1.0 .

run

# docker run -it --name "test1" catapult:1.0 /bin/bash
# pwd
/tmp/catapult-server-0.1.0.1/_build

以下、dockerコンテナ内で作業します。

Copy resources

設定ファイル

# cp ../resources/* resources/

Generate Accounts

作業に使うアドレスを作ります。

# bin/catapult.tools.address -g 10 --network mijin-test
--- generating 10 keys ---
           private key: 6C07F78D8C932626F6550FB114C26EFAFE2EC40220E44E1EF0180D9FB89A0AF0
            public key: 8C2C06CCCDDFBC964345C051B3A94906813DCB198BA8A56378DA6ED1D2E99B58
  address (mijin-test): SCIXWKDPLL7L7IQO6LWN2HJXHYUV3F7ZQX3NUKM3

           private key: B14D75EADBB5C3DEE376E332FCD4AEB829A0F0A8DEE8933AA59B1FA13A7FE852
            public key: 0032A2CE81728DDFB0E7874AF8B98EC040418195721C1AEE2DD82776CCEC4551
  address (mijin-test): SCESGGNSG2VAT6QXXFDS57Z7VYFFY63MYJWEF7PD

...続く

private keypublic keySから始まるアドレスの組が表示されます。

Create Nemesis Block

Files

mijin-test.propertiesをもってくる。編集する。

# cp ../tools/nemgen/resources/mijin-test.properties resources/
# vi resources/mijin-test.properties
cppFile = ../seed/mijin-test/MockMemoryBasedStorage_data.h

MockMemoryBasedStorage_data.hの使い道はわからない。

hashes.datを作る。

# mkdir -p seed/mijin-test/0000
# echo -n 6b23c0d5f35d1b11f9b683f0b0a617355deb11277d91ae091d399c655b87940d3f39d5c348e5b79d06e842c114e6cc571583bbf44e4b0ebfda1a01ec05745d43 > seed/mijin-test/00000/hashes.dat

hashes.datに入れるべき値はよくわからない。

Initial Distribution

distribution>nem:xemの下に書いてあるアドレスを、先ほど作ったアドレスに好きなだけ書き換えます。

# vi resources/mijin-test.properties
[distribution>nem:xem]
SCIXWKDPLL7L7IQO6LWN2HJXHYUV3F7ZQX3NUKM3 = 409'090'909'000'000

nemgen

# cd bin
# ./catapult.tools.nemgen ../resources/mijin-test.properties
# cd ../
2018-05-22 11:45:12.133084 0x00007fa967398200: <info> (nemgen::main.cpp@60) loading nemesis configuration from "../resources/mijin-test.properties"
2018-05-22 11:45:12.138438 0x00007fa967398200: <info> (nemgen::main.cpp@352) creating binary storage seed in ../seed/mijin-test
2018-05-22 11:45:12.138736 0x00007fa967398200: <info> (nemgen::main.cpp@343) nemesis block hash: 6F4460D29E34A22B7760C7D78E822ACAF7B18BF5D697443C4C261377D45107F9
2018-05-22 11:45:12.139117 0x00007fa967398200: <info> (nemgen::main.cpp@357) creating cpp file ../seed/mijin-test/MockMemoryBasedStorage_data.h

Copy

しかるべきディレクトリにコピー

# mkdir -p data/00000
# cp seed/mijin-test/00000/* data/00000/

Harvesting

harvestKeyはInitial Distributionで指定したアドレスの秘密鍵を。
isAutoHarvestingEnabledtrueに。

# vi resources/config-harvesting.properties
[harvesting]
harvestKey = 6C07F78D8C932626F6550FB114C26EFAFE2EC40220E44E1EF0180D9FB89A0AF0
isAutoHarvestingEnabled = true

mongoDB

catapult-restに必要です。

# apt-get install mongodb
# systemctl start mongodb
# systemctl enable mongodb
# vi resources/config-node.properties
[extensions]
extension.mongo = true

server account

bootKeyに秘密鍵を設定します。catapult-restに必要です。

# vi resources/config-user.properties
[account]
bootKey = B14D75EADBB5C3DEE376E332FCD4AEB829A0F0A8DEE8933AA59B1FA13A7FE852

Run

# cd bin
# ./catapult.server

うまくいけば、こんな感じでハーベストが進みます。

2018-05-22 08:29:13.117334 0x00007f1ecf7fe700: <info> (src::ScheduledHarvesterTask.cpp@35) Successfully harvested block at 853 with signer 8C2C06CCCDDFBC964345C051B3A94906813DCB198BA8A56378DA6ED1D2E99B58
2018-05-22 08:29:13.160800 0x00007f1e9f7fe700: <info> (disruptor::ConsumerDispatcher.cpp@44) completing processing of element 100 (1 blocks (heights 853 - 853) [1E978FE3] empty from Local), last consumer is 0 elements behind