kharukaのブログ~お金と技術とキャリア~

Edu Fin~金融×教育~若いうちからお金について学ぶってだいじ!学んだテクノロジーはみんなの財産。過去、現在、将来の人生についてのブログ

【トレンドマイクロ】トレンドマイクロエンドポイントセンサー1.6Repackインストール(リライト)

エンジニアスクールFLOC

システム要件

参考に記載のURLなどをご参考にしてください。

メディアとライセンスキー(評価版はまだ公開されていないかもしれません。)を以下サイトから入手します。

Trend Micro Software Download Center

トレンドマイクロエンドポイントセンサー1.6Repackインストール

EndpointSensorSetup-1.6-GA-repack.exeを管理者として実行します。

f:id:kharuka2016:20161202065640p:plain

 Nextをクリックします。

f:id:kharuka2016:20161202065641p:plain

I accept the terms of the License Agreementを選択しNextをクリックします。

f:id:kharuka2016:20161202065642p:plain

インストールフォルダーの要件がなければデフォルトのInstallation folderを指定します。

f:id:kharuka2016:20161202065643p:plain

配布モジュールのライセンスキーを入力します。クライアントインストール用のライセンスはEndpoint Agent、サーバーインストール用のライセンスはServer Agentに入力します。

f:id:kharuka2016:20161202065644p:plain

使用するSQLを指定します。

f:id:kharuka2016:20161202065646p:plain

今回は作成済みのSQL Server  2012 SP3 CU4を指定します。

f:id:kharuka2016:20161202065647j:plain

管理コンソールへのアクセス方法を指定します。

f:id:kharuka2016:20161202065648p:plain

サーバーの特定をFQDN or hostname若しくはIP adressかを指定します。

f:id:kharuka2016:20161202065649j:plain

サーバーとモジュールインストール端末の通信ポートを指定します。

f:id:kharuka2016:20161202065650p:plain

証明書をインポートします。

f:id:kharuka2016:20161202065651p:plain

ロキシーの設定をします。

f:id:kharuka2016:20161202065652p:plain

管理者のアカウントを入力します。

f:id:kharuka2016:20161202065653p:plain

Passwordを入力します。Email addressは入力必須ではないです。

f:id:kharuka2016:20161202065654p:plain

Installをクリックします。

f:id:kharuka2016:20161202065655p:plain

インストール中です。

f:id:kharuka2016:20161202065656p:plain

インストール中です。

f:id:kharuka2016:20161202065657p:plain

インストール完了です。

f:id:kharuka2016:20161202065658p:plain

必要がなければチェックボックスのチェックを外しFinishをクリックします。

f:id:kharuka2016:20161202065659p:plain

参考

【Windows】RDP接続時のエラー”接続ファイルを開くことができません”(リライト)

エンジニアスクールFLOC

背景

RDP(リモートデスクトップ)接続時に最近”接続ファイルを開くことができません”とエラーが出るようになってしましました。

しかしRDP接続自体は出来ます。

エラーポップアップ画面がいちいち出てくるので邪魔であるため修正しました。

修正方法

エクスプローラーでエラーポップアップ画面に表示されるパスまで移動します。

alt キーをクリックします。

メニューバーのTools > Folder Opions をクリックします。

Viewタブをクリックします。

隠しファイルを表示

Hidden files and foldersがDon't show hidden files, folders, or drivesとなっている場合はShow hidden files, folders, and drivesに変更します。

Default.rdpファイル削除

エクスプローラーでエラーポップアップ画面に表示されるパスにDefault.rdpファイルが存在するので削除します。

RDP接続

RDP接続すると同じパスにDefault.rdpファイルが作成されるがエラーは出なくなりました。

参考

Corda Bootcamp Tokyo 2019 Part1(2019年2月2日執筆)

エンジニアスクールFLOC

環境情報

OS

OS バージョン 備考
macOS Mojava 10.14.2

Software

Software バージョン 備考
Java 1.8.0_201
IntelliJ IDEA 2018.3.4(Community Edition)
Kotlin 1.3.11-release-IJ2018.3-1
Git 2.20.1

環境構築

▼環境構築の仕方はこちらなどをご参考に。

Getting set up for CorDapp development — R3 Corda V3.3 documentation

treeをインストールしておくことをオススメします。

brew install tree

Cordaとは?

Cordaプライベートなものの取引を可能とする分散台帳プラットホームです。

現在、Cordaはその性質から金融機関などの企業間取引を想定している様です。

Corda Networkを通してNode間取引が行われます。

EthereumがDApps(分散型アプリケーション)を構築している様に、CordaもCorda Networ上にDApps(CorDapps)を構築して取引をします。

CordaはBitcoinを代表とするブロックチェーンを使ったコンセンサスアルゴリズムとは仕組みが異なります。

Notary Node(Notary Pools)が取引のコンセンサス(合意形成)を行います。

ブロックチェーン(パブリック)との違い

相違点 Corda ブロックチェーン(パブリック)
公開・非公開 プライベート パブリック
コンセンサス Notary Node Proof of Work
トランザクション 様々なもの*1を取引できる 通貨取引

CorDappをつくる

States

トランザクションのinputとoutputに含めたものがStatesです。

Bitcoinの場合inputとoutputは(Transaction IDとか難しい?話は置いておいて)BTCになります。

しかし、Cordの場合はinputとoutputに通貨だけでなく株や債権なども含めることが出来ます。

Contracts

Statesに含まれたものの取引(トランザクション)を使用して台帳を更新します。

Flows

Nodeは元帳を更新するためにフローを実行します。

トランザクションに使用するNotary Nodeを選択 ▶︎ トランザクション構築 ▶︎ トランザクションの検証 ▶︎ トランザクションに署名 ▶︎ トランザクションの公証と記録

CordDappを起動

執筆中です。

ソースコード

ソースコードは以下のGitHub Repositoryなどをご参照ください。

GitHub - kharuka/Corda: Corda Bootcamp Tokyo 2019

▼記事の続きは以下へ。

執筆中です。

仮想通貨取引所・販売所

  • bitbank

ビットバンク株式会社 | 仮想通貨ビットコイン (bitcoin) の購入/投資 / BTCFX

bitFlyer

【BITPoint】ビットコイン・イーサリアムなど仮想通貨の口座開設ならビットポイント

ビットコイン購入なら仮想通貨取引所 | Coincheck(コインチェック)

【DMMビットコイン】仮想通貨を始めるならDMM Bitcoin

フィスコ仮想通貨取引所

  • Liquid by Quoine

Liquid by Quoine(リキッドバイコイン) | QUOINE(コイン)が運営するビットコインなどの仮想通貨取引所

  • SBI Virtual Currencies

SBIバーチャル・カレンシーズ|仮想通貨ならSBIバーチャル・カレンシーズ

仮想通貨取引所・販売所 - Zaif(ザイフ)

ハードウェアウォレット

  • Ledger Nano S

  • トレザー

ソフトウェアウォレット

  • Ginco

Ginco - 安心・安全の仮想通貨ウォレット

参考

ビットコインとブロックチェーン

ビットコインとブロックチェーン

*1:通貨、株、債権など

はじめてのCounterpartyノード構築Part5(2019年1月20日執筆)

エンジニアスクールFLOC

ビットコインとブロックチェーン

ビットコインとブロックチェーン

▼前回の記事はこちらです。

はじめてのCounterpartyノード構築Part4(2019年1月20日執筆) - kharukaのブログ~お金と技術とキャリア~

環境情報

OS

OS バージョン 備考
macOS Mojava 10.14.2 ホストOS
Oracle VM VirtualBox 5.2.24
Ubuntu 18.04.1LTS ゲストOS

Node.js

Node.js バージョン 備考
npm 6.4.1
node v8.15.0

環境構築

▼環境構築の仕方はこちらなどをご参考に。

kharuka2016.hatenablog.com

counterparty-serverのインストール

counterparty-libのインストール

cd work
git clone https://github.com/CounterpartyXCP/counterparty-lib.git
cd counterparty-lib
sudo apt install -y python3-pip
sudo pip3 install --upgrade -r requirements.txt
sudo python3 setup.py install
cd

counterparty-cliのインストール

cd work
git clone https://github.com/CounterpartyXCP/counterparty-cli.git
cd counterparty-cli
sudo pip3 install --upgrade -r requirements.txt
sudo python3 setup.py install
cd

server.confファイル修正

sudo vi .config/counterparty/server.conf

server.conf

[Default]
backend-name = indexd
backend-user = <RPCUSER>
backend-password = <RPCPASSWORD>
indexd-connect = localhost
indexd-port = 18432
rpc-host = 0.0.0.0
rpc-user = <CPRPCUSER>
rpc-password = <CPRPCPASSWORD>
testnet = 1

client.confファイル修正

sudo vi .config/counterparty/client.conf

client.conf

[Default]
wallet-name = bitcoincore
wallet-connect = localhost
wallet-user = <RPCUSER>
wallet-password = <RPCPASSWORD>
counterparty-rpc-connect = localhost
counterparty-rpc-user = <CPRPCUSER>
counterparty-rpc-password = <CPRPCPASSWORD>
testnet = 1

confファイルのアクセス権限を変更します。

sudo chown -R kharuka:kharuka /home/kharuka/.config/counterparty/

counterparty-serverデーモンの起動

counterparty-server bootstrap
counterparty-server start &

ブロック同期確認

Block: 1442892の次のブロックで何故かエラーが発生してしまう。

それとも別の理由でエラーが発生しているのか?

testnet の XCHAIN ( counterparty explorer ) で探してもそんなブロック存在せーへん。

惜しい。

[2019-01-20 08:26:57][INFO] Block: 1442892 (0.16s, hashes: L:c3e66 / TX:0aa90 / M:1d6d9)
[2019-01-20 08:26:57][ERROR] Unhandled Exception
Traceback (most recent call last):
  File "/usr/local/bin/counterparty-server", line 11, in <module>
    load_entry_point('counterparty-cli==1.1.4', 'console_scripts', 'counterparty-server')()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/__init__.py", line 16, in server_main
    server.main()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/server.py", line 164, in main
    server.start_all(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/server.py", line 466, in start_all
    blocks.follow(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/blocks.py", line 1261, in follow
    block_count = backend.getblockcount()
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/__init__.py", line 42, in getblockcount
    return BACKEND().getblockcount()
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 148, in getblockcount
    return rpc('getblockcount', [])
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 87, in rpc
    return rpc_call(payload)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 59, in rpc_call
    response_json = response.json()
  File "/usr/local/lib/python3.6/dist-packages/requests-2.10.0-py3.6.egg/requests/models.py", line 812, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

もう一度counterparty-server start &をはしらせたら、ブロック同期再開???

エラー再発。泣

[2019-01-20 08:52:57][INFO] Block: 1446988 (0.31s, hashes: L:a0bb2 / TX:e40a1 / M:355c8)
[2019-01-20 08:52:57][ERROR] Unhandled Exception
Traceback (most recent call last):
  File "/usr/local/bin/counterparty-server", line 11, in <module>
    load_entry_point('counterparty-cli==1.1.4', 'console_scripts', 'counterparty-server')()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/__init__.py", line 16, in server_main
    server.main()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/server.py", line 164, in main
    server.start_all(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/server.py", line 466, in start_all
    blocks.follow(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/blocks.py", line 1214, in follow
    block_hash = backend.getblockhash(current_index)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/__init__.py", line 45, in getblockhash
    return BACKEND().getblockhash(blockcount)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 151, in getblockhash
    return rpc('getblockhash', [blockcount])
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 87, in rpc
    return rpc_call(payload)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 59, in rpc_call
    response_json = response.json()
  File "/usr/local/lib/python3.6/dist-packages/requests-2.10.0-py3.6.egg/requests/models.py", line 812, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

もう一度counterparty-server start &をはしらせる。

おぉー、同期完了!

[2019-01-20 09:18:09][INFO] Ready for queries.

結果オーライですが、しっくりこない感じですね。

counterparty-clientの動作確認

$ counterparty-client getinfo
[2019-01-20 09:52:24][INFO] Running v1.1.4 of counterparty-client.
Unhandled Exception
Traceback (most recent call last):
  File "/usr/local/bin/counterparty-client", line 11, in <module>
    load_entry_point('counterparty-cli==1.1.4', 'console_scripts', 'counterparty-client')()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/__init__.py", line 12, in client_main
    client.main()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/client.py", line 251, in main
    view = console.get_view(args.action, args)
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/console.py", line 16, in get_view
    return util.api('get_running_info')
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/util.py", line 92, in api
    return rpc(config.COUNTERPARTY_RPC, method, params=params, ssl_verify=config.COUNTERPARTY_RPC_SSL_VERIFY)
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/util.py", line 82, in rpc
    raise RPCError(str(response.status_code) + ' ' + response.reason + ' ' + response.text)
counterpartycli.util.RPCError: 503 SERVICE UNAVAILABLE {"code": -32000, "message": "Server error", "data": "Indexd is running 729748 blocks behind."}

これはあかんやつや。。。

$ counterparty-client wallet
[2019-01-20 09:49:30][INFO] Running v1.1.4 of counterparty-client.
TOTAL
+-------+---------+
| Asset | Balance |
+-------+---------+
+-------+---------+

こっちは動くの何でやねん?

counterparty-serverたびたび落ちる。。。

[2019-01-20 14:45:09][INFO] Block: 1453242 (0.27s, hashes: L:1e618 / TX:2eea4 / M:d3718)
[2019-01-20 14:49:07][ERROR] Unhandled Exception
Traceback (most recent call last):
  File "/usr/local/bin/counterparty-server", line 11, in <module>
    load_entry_point('counterparty-cli==1.1.4', 'console_scripts', 'counterparty-server')()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/__init__.py", line 16, in server_main
    server.main()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/server.py", line 164, in main
    server.start_all(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/server.py", line 466, in start_all
    blocks.follow(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/blocks.py", line 1156, in follow
    block_count = backend.getblockcount()
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/__init__.py", line 42, in getblockcount
    return BACKEND().getblockcount()
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 148, in getblockcount
    return rpc('getblockcount', [])
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 87, in rpc
    return rpc_call(payload)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 59, in rpc_call
    response_json = response.json()
  File "/usr/local/lib/python3.6/dist-packages/requests-2.10.0-py3.6.egg/requests/models.py", line 812, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

再度ブロッック同期完了直後にもcounterparty-serverが落ちる。

[2019-01-20 16:36:34][INFO] Block: 1453255 (0.51s, hashes: L:6c796 / TX:067db / M:5d665)
[2019-01-20 16:36:34][INFO] Mempool cache initialized: 0.13s for 93 transactions
[2019-01-20 16:36:34][INFO] Ready for queries.
[2019-01-20 16:39:08][ERROR] Unhandled Exception
Traceback (most recent call last):
  File "/usr/local/bin/counterparty-server", line 11, in <module>
    load_entry_point('counterparty-cli==1.1.4', 'console_scripts', 'counterparty-server')()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/__init__.py", line 16, in server_main
    server.main()
  File "/usr/local/lib/python3.6/dist-packages/counterpartycli/server.py", line 164, in main
    server.start_all(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/server.py", line 466, in start_all
    blocks.follow(db)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/blocks.py", line 1156, in follow
    block_count = backend.getblockcount()
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/__init__.py", line 42, in getblockcount
    return BACKEND().getblockcount()
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 148, in getblockcount
    return rpc('getblockcount', [])
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 87, in rpc
    return rpc_call(payload)
  File "/usr/local/lib/python3.6/dist-packages/counterparty_lib-9.56.0-py3.6.egg/counterpartylib/lib/backend/indexd.py", line 59, in rpc_call
    response_json = response.json()
  File "/usr/local/lib/python3.6/dist-packages/requests-2.10.0-py3.6.egg/requests/models.py", line 812, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

おやおや?

pm2 restart indexでindexd-serverを再起動したら

ブロッック同期完了直後にcounterparty-serverが落ちることは少なくなった。

この子メンテナンスがかなり大変そうやな。。。

そしてgetinfoも動きました。

$ counterparty-client getinfo
[2019-01-20 17:04:03][INFO] Running v1.1.4 of counterparty-client.
{
    "api_limit_rows": 1000,
    "bitcoin_block_count": 1453260,
    "db_caught_up": true,
    "indexd_blocks_behind": 0,
    "indexd_caught_up": true,
    "last_block": {
        "block_hash": "000000000000011228b6f1041285d29c3107c2f8d5bb95f154873a4a62a9dd5b",
        "block_index": 1453260,
        "block_time": 1547970957,
        "difficulty": 13279725.231716892,
        "ledger_hash": "79ea0acfa0e9efa52d03953ab668fd8b7250a63887175a10a3e81c393a358efe",
        "messages_hash": "afb3610118851e0aa8e8f01fca7371623ae1e1e2a163f5079c2038a2d4ba507d",
        "previous_block_hash": "0000000000000113313817965bea29f72f71fc981a3b02e57b6c0f6d1b92eea9",
        "txlist_hash": "b045d795f47809cb9a84d32264154313dc4c3ffe8509c5810d1e49d4f48eb616"
    },
    "last_message_index": 73906,
    "running_regtest": false,
    "running_testcoin": false,
    "running_testnet": true,
    "server_ready": true,
    "version_major": 9,
    "version_minor": 56,
    "version_revision": 0
}

getinfo時のエラーログ最終行に答えがそのまま書いてありましたね。

(省略)
counterpartycli.util.RPCError: 503 SERVICE UNAVAILABLE {"code": -32000, "message": "Server error", "data": "Indexd is running 729748 blocks behind."}

"data": "Indexd is running 729748 blocks behind."とある様に

indexd-serverのブロック同期(address index)がcounterparty-serverのブロック同期に追いついていないだけでした。

とりあえず、めでたしめでたし!

▼記事の続きは以下へ。

執筆中です。

仮想通貨取引所・販売所

  • bitbank

https://bitcoinbank.co.jp

https://bitflyer.com/ex/sp/home

【BITPoint】ビットコイン・イーサリアムなど仮想通貨の口座開設ならビットポイント

https://coincheck.com/ja/

https://bitcoin.dmm.com

フィスコ仮想通貨取引所 口座開設プロモーション

  • Liquid by Quoine

https://ja.quoinex.com

  • SBI Virtual Currencies

https://www.sbivc.co.jp

https://zaif.jp/?lang=ja

ハードウェアウォレット

  • Ledger Nano S

  • トレザー

ソフトウェアウォレット

  • Ginco

Ginco - 安心・安全の仮想通貨ウォレット

参考

ビットコインとブロックチェーン

ビットコインとブロックチェーン

はじめてのNode.jsインストール(2019年3月2日更新)

Node.js超入門[第2版]

Node.js超入門[第2版]

エンジニアスクールFLOC

環境情報

OS

OS バージョン 備考
macOS Mojava 10.14.2 ホストOS
Oracle VM VirtualBox 5.2.24
Ubuntu 18.04.1LTS ゲストOS

Node.js

Node.js バージョン 備考
npm 6.4.1
node v8.15.0

環境構築

▼環境構築の仕方はこちらなどをご参考に。

はじめてのCounterpartyノード構築Part1(2018年9月29日更新) - kharukaのブログ~お金と技術とキャリア~

Node.jsのインストール

作業用ディレクトリ作成

mkdir work
cd work

apt update と upgrade

sudo apt update
sudo apt upgrade -y

ライブラリのインストール

sudo apt install -y build-essential

nodejs と npm のインストール

sudo apt install -y curl
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

バージョン確認

node -v
 -- v10.15.0 --
npm -v
 -- 6.4.1 --

package.json作成

取り敢えず、全てenterでOK。

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (tmp) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to ~/tmp/package.json:

{
  "name": "tmp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

bitcoinjs-lib のインストール

npm install bitcoinjs-lib --save

参考

ビットコインとブロックチェーン

ビットコインとブロックチェーン

はじめてのCounterpartyノード構築Part4(2019年1月20日執筆)

エンジニアスクールFLOC

ビットコインとブロックチェーン

ビットコインとブロックチェーン

▼前回の記事はこちらです。

はじめてのCounterpartyノード構築Part3(2019年1月20日執筆) - kharukaのブログ~お金と技術とキャリア~

環境情報

OS

OS バージョン 備考
macOS Mojava 10.14.2 ホストOS
Oracle VM VirtualBox 5.2.24
Ubuntu 18.04.1LTS ゲストOS

Node.js

Node.js バージョン 備考
npm 6.4.1
node v8.15.0

環境構築

▼環境構築の仕方はこちらなどをご参考に。

kharuka2016.hatenablog.com

indexd-serverのインストール

cd work
git clone https://github.com/CounterpartyXCP/indexd-server.git
cd indexd-server/
cp .env-testnet-example .env
vi .env

.env

DEBUG=index,zmq,zmq:block,express

INDEXDB=/data/indexd/indexd-testnet

RPC=http://localhost:18332
RPCPASSWORD=<RPCPASSWORD>
RPCUSER=<RPCUSER>
ZMQ=tcp://localhost:38832
TESTNET=true

SERVER_PORT=18432

NODE_ENV=production
RPCBATCHSIZE=500
RPCCONCURRENT=32

ライブラリのインストール

sudo apt install -y libzmq3-dev gcc g++ python3 build-essential

npm install時に zmq 関連のエラーが出続けていて心が折れそうでしたが

試行錯誤の末なんとか解決に至りました。

Node.jsのインストール

sudo apt install -y curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs
node -v
 -- v8.15.0 --
npm -v
 -- 6.4.1 --
cd ..

はじめは nodejs v10.15.0 をインストールしていましたが、いつまでたってもnpm installが実行完了しませんでした。

v8.15.0 だと何故かエラーなく、warningは出ましたが、node-modules が作成出来ました。

ライブラリとNode.jsのバージョンには泣かされましたわ。

ここまでが長く険しい道のりでした。

sudo mkdir -p /data/indexd/indexd-testnet/
sudo chown -R kharuka:kharuka /data
cd work/indexd-server/
rm package-lock.json
npm install

オフィシャルのドキュメントではnpm startが使われていますが

indexd-server/README.md で以下のコメントを見つけました。

The recommended way to run the server is with [forever](https://www.npmjs.com/package/forever).

今回は forever ではなく、何となく pm2 を採用しました。

カンってやつです!

sudo npm install -g pm2
sudo pm2 start index.js

パーミションエラーにも最後まで苦しみました。笑

debugはpm2を駆使して頑張りましょう!

pm2 show <id|name>

pm2 logs index
less /home/kharuka/.pm2/logs/index-error.log

次回はいよいよ大詰め、counterparty-serverのインストールをしていきます。

▼記事の続きは以下へ。

はじめてのCounterpartyノード構築Part5(2019年1月20日執筆) - kharukaのブログ~お金と技術とキャリア~

仮想通貨取引所・販売所

  • bitbank

https://bitcoinbank.co.jp

https://bitflyer.com/ex/sp/home

【BITPoint】ビットコイン・イーサリアムなど仮想通貨の口座開設ならビットポイント

https://coincheck.com/ja/

https://bitcoin.dmm.com

フィスコ仮想通貨取引所 口座開設プロモーション

  • Liquid by Quoine

https://ja.quoinex.com

  • SBI Virtual Currencies

https://www.sbivc.co.jp

https://zaif.jp/?lang=ja

ハードウェアウォレット

  • Ledger Nano S

  • トレザー

ソフトウェアウォレット

  • Ginco

Ginco - 安心・安全の仮想通貨ウォレット

参考

ビットコインとブロックチェーン

ビットコインとブロックチェーン

はじめてのCounterpartyノード構築Part3(2019年1月20日執筆)

エンジニアスクールFLOC

ビットコインとブロックチェーン

ビットコインとブロックチェーン

▼前回の記事はこちらです。

執筆中です。

環境情報

OS

OS バージョン 備考
macOS Mojava 10.14.2 ホストOS
Oracle VM VirtualBox 5.2.24
Ubuntu 18.04.1LTS ゲストOS

Node.js

Node.js バージョン 備考
npm 6.4.1
node v8.15.0

環境構築

▼環境構築の仕方はこちらなどをご参考に。

kharuka2016.hatenablog.com

Counterparty-lib 9.56.0 released!

Counterparty-lib 9.56.0 のアップデートに伴い、Counterparty のハードフォークが実施されます。

対応するBitcoinノードのバージョンは Bitcoin Core 0.16.3です。

addrindex patch 方式から indexd-server 方式に変わります。

Counterparty ノードは Bitcoin Core 0.x.x with addrindex patch という address index 付きのBitcoin Coreと

counterparty-server ( counterparty-lib + counterparty-cli ) から構成されていました。

今回のアップデートに伴い、Bitcoin Core 0.16.3 + indexd-server + counterparty-server ( counterparty-lib + counterparty-cli )

という構成を採用せざるを得なくなりました。

詳細については参考にリンクを貼っていますのでご参照ください。

Counterpartyノード構築

Bitcoinのインストール

git をインストールしていない場合は git をインストールしておきましょう。

sudo apt update
sudo apt install git

まず bitcoin-core-0.16.3 をダウンロードします。

mkdir work
cd work
wget https://bitcoincore.org/bin/bitcoin-core-0.16.3/bitcoin-0.16.3-x86_64-linux-gnu.tar.gz

チェックサムを確認してファイルが壊れていないか確認しましょう。

bitcoin-0.16.3-x86_64-linux-gnu.tar.gz: OKが表示されます。

wget https://bitcoincore.org/bin/bitcoin-core-0.16.3/SHA256SUMS.asc
sha256sum --ignore-missing --check SHA256SUMS.asc

チェックサムの確認が終わったら bitcoin-core-0.16.3 を解凍します。

tar -zxvf bitcoin-0.16.3-x86_64-linux-gnu.tar.gz
cd

bitcoin.conf作成

mkdir .bitcoin
vi .bitcoin/bitcoin.conf

bitcoin.conf

# [core]
daemon=1
# [debug]
debug=1
logips=1
testnet=1
# [rpc]
server=1
txindex=1
rpcuser=<RPCUSER>
rpcpassword=<RPCPASSWORD>
rpcport=18332
rpcallowip=0.0.0.0/0
rpctimeout=300
zmqpubhashblock=tcp://127.0.0.1:28832
zmqpubhashtx=tcp://127.0.0.1:28832
addresstype=legacy

bitcoindbitcoin-cliをフルパス指定で使うのは長ったらしいので/usr/bin/にコピーします。

sudo cp work/bitcoin-0.16.3/bin/bitcoind /usr/bin/
sudo cp work/bitcoin-0.16.3/bin/bitcoin-cli /usr/bin/

bitcoindのバージョンを確認します。

bitcoind --version

bitcoindデーモンの起動

bitcoind

bitcoindデーモンの起動確認

ps aux | grep bitcoind

ブロック同期確認

less .bitcoin/testnet3/debug.log

progress=1.000000になれば、ブロック同期完了です。

スペックにも寄りますが、testnetでも結構時間がかかります。

次回は indexd-server をインストールしていきます。

▼記事の続きは以下へ。

はじめてのCounterpartyノード構築Part4(2019年1月20日執筆) - kharukaのブログ~お金と技術とキャリア~

仮想通貨取引所・販売所

  • bitbank

https://bitcoinbank.co.jp

https://bitflyer.com/ex/sp/home

【BITPoint】ビットコイン・イーサリアムなど仮想通貨の口座開設ならビットポイント

https://coincheck.com/ja/

https://bitcoin.dmm.com

フィスコ仮想通貨取引所 口座開設プロモーション

  • Liquid by Quoine

https://ja.quoinex.com

  • SBI Virtual Currencies

https://www.sbivc.co.jp

https://zaif.jp/?lang=ja

ハードウェアウォレット

  • Ledger Nano S

  • トレザー

ソフトウェアウォレット

  • Ginco

Ginco - 安心・安全の仮想通貨ウォレット

参考

ビットコインとブロックチェーン

ビットコインとブロックチェーン