# 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 key`と`public key`と`S`から始まるアドレスの組が表示されます。 ## 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で指定したアドレスの秘密鍵を。 `isAutoHarvestingEnabled`は`true`に。 ``` # 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 ```