色々なことを徒然と……

かえでBlog

linux サーバー 仮想通貨

【仮想通貨】CentOSにSHIELDウォレットをインストール

投稿日:

SHIELDをLinux環境で実行する場合、公式サイトだとElectrumを使用するようになっている。

しかし、Electrumのバージョンが2.4.1であり、脆弱性対策がされていないバージョンの為、あまり利用できないな思っていたので。
公式には記載されていないのですが、bitcoin-coreと同じ方法で使用することができるか試してみました。

使用環境

OS:CentOS7.4(最小構成インストール)
SELinuxは無効にする
Berkeleyをインストールするためにepelを使用する。
関係ないけどvim好きなのでvimをインストール(最小構成の場合インストールされないない為)
予めyum updateしていること。
インストールはCUIオンリー(No GUI)であること。

Berkeleyは手動インストールでもできるが、今回はepelでいくことにしました。

[root@localhost ~]# getenforce
Disabled
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

必要なものインストール

epel

さくっと入れちゃいます。

[root@localhost ~]# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.PPx2AP: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:epel-release-7-11                ################################# [100%]
[root@localhost ~]#

git、vimのインストール

テキスト編集としてvim
SIELDの取得に必要なgit
をインストールします。

[root@localhost ~]# yum install -y git vim
読み込んだプラグイン:fastestmirror
base                                                     | 3.6 kB     00:00     
・
・
	省略
・
・
================================================================================
 Package                    アーキテクチャー
                                       バージョン             リポジトリー
                                                                           容量
================================================================================
インストール中:
 git                        x86_64     1.8.3.1-12.el7_4       updates     4.4 M
 vim-enhanced               x86_64     2:7.4.160-2.el7        base        1.0 M
依存性関連でのインストールをします:
 gpm-libs                   x86_64     1.20.7-5.el7           base         32 k
 libgnome-keyring           x86_64     3.12.0-1.el7           base        109 k
 perl                       x86_64     4:5.16.3-292.el7       base        8.0 M
 perl-Carp                  noarch     1.26-244.el7           base         19 k
 perl-Encode                x86_64     2.51-7.el7             base        1.5 M
 perl-Error                 noarch     1:0.17020-2.el7        base         32 k
 perl-Exporter              noarch     5.68-3.el7             base         28 k
 perl-File-Path             noarch     2.09-2.el7             base         26 k
 perl-File-Temp             noarch     0.23.01-3.el7          base         56 k
 perl-Filter                x86_64     1.49-3.el7             base         76 k
 perl-Getopt-Long           noarch     2.40-2.el7             base         56 k
 perl-Git                   noarch     1.8.3.1-12.el7_4       updates      53 k
 perl-HTTP-Tiny             noarch     0.033-3.el7            base         38 k
 perl-PathTools             x86_64     3.40-5.el7             base         82 k
 perl-Pod-Escapes           noarch     1:1.04-292.el7         base         51 k
 perl-Pod-Perldoc           noarch     3.20-4.el7             base         87 k
 perl-Pod-Simple            noarch     1:3.28-4.el7           base        216 k
 perl-Pod-Usage             noarch     1.63-3.el7             base         27 k
 perl-Scalar-List-Utils     x86_64     1.27-248.el7           base         36 k
 perl-Socket                x86_64     2.010-4.el7            base         49 k
 perl-Storable              x86_64     2.45-3.el7             base         77 k
 perl-TermReadKey           x86_64     2.30-20.el7            base         31 k
 perl-Text-ParseWords       noarch     3.29-4.el7             base         14 k
 perl-Time-HiRes            x86_64     4:1.9725-3.el7         base         45 k
 perl-Time-Local            noarch     1.2300-2.el7           base         24 k
 perl-constant              noarch     1.27-2.el7             base         19 k
 perl-libs                  x86_64     4:5.16.3-292.el7       base        688 k
 perl-macros                x86_64     4:5.16.3-292.el7       base         43 k
 perl-parent                noarch     1:0.225-244.el7        base         12 k
 perl-podlators             noarch     2.5.1-3.el7            base        112 k
 perl-threads               x86_64     1.87-4.el7             base         49 k
 perl-threads-shared        x86_64     1.43-6.el7             base         39 k
 rsync                      x86_64     3.0.9-18.el7           base        360 k
 vim-common                 x86_64     2:7.4.160-2.el7        base        5.9 M
 vim-filesystem             x86_64     2:7.4.160-2.el7        base        9.8 k

トランザクションの要約
================================================================================
インストール  2 パッケージ (+35 個の依存関係のパッケージ)
・
・
省略
・
・
完了しました!

 

コンパイルに必要なもの

gccとかmakeとかlibtoolとかとりあえず必要なものを突っ込みます

[root@localhost ~]# yum install -y --gcc gcc-c++ cpp make autoconf automake openssl-d evel curl-devel libevent libevent-devel libevent-doc
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
・
・
省略
・
・
================================================================================
 Package                 アーキテクチャー
                                    バージョン                リポジトリー
                                                                           容量
================================================================================
インストール中:
 autoconf                noarch     2.69-11.el7               base        701 k
 automake                noarch     1.13.4-3.el7              base        679 k
 cpp                     x86_64     4.8.5-16.el7_4.1          updates     5.9 M
 gcc                     x86_64     4.8.5-16.el7_4.1          updates      16 M
 gcc-c++                 x86_64     4.8.5-16.el7_4.1          updates     7.2 M
 libcurl-devel           x86_64     7.29.0-42.el7_4.1         updates     300 k
 libevent                x86_64     2.0.21-4.el7              base        214 k
 libevent-devel          x86_64     2.0.21-4.el7              base         85 k
 libevent-doc            noarch     2.0.21-4.el7              base        238 k
 openssl-devel           x86_64     1:1.0.2k-8.el7            base        1.5 M
依存性関連でのインストールをします:
 glibc-devel             x86_64     2.17-196.el7_4.2          updates     1.1 M
 glibc-headers           x86_64     2.17-196.el7_4.2          updates     676 k
 kernel-headers          x86_64     3.10.0-693.17.1.el7       updates     6.0 M
 keyutils-libs-devel     x86_64     1.5.8-3.el7               base         37 k
 krb5-devel              x86_64     1.15.1-8.el7              base        266 k
 libcom_err-devel        x86_64     1.42.9-10.el7             base         31 k
 libkadm5                x86_64     1.15.1-8.el7              base        174 k
 libmpc                  x86_64     1.0.1-3.el7               base         51 k
 libselinux-devel        x86_64     2.5-11.el7                base        186 k
 libsepol-devel          x86_64     2.5-6.el7                 base         74 k
 libstdc++-devel         x86_64     4.8.5-16.el7_4.1          updates     1.5 M
 libverto-devel          x86_64     0.2.5-4.el7               base         12 k
 m4                      x86_64     1.4.16-10.el7             base        256 k
 mpfr                    x86_64     3.1.1-4.el7               base        203 k
 pcre-devel              x86_64     8.32-17.el7               base        480 k
 perl-Data-Dumper        x86_64     2.145-3.el7               base         47 k
 perl-Test-Harness       noarch     3.28-3.el7                base        302 k
 perl-Thread-Queue       noarch     3.02-2.el7                base         17 k
 zlib-devel              x86_64     1.2.7-17.el7              base         50 k

トランザクションの要約
================================================================================
インストール  10 パッケージ (+19 個の依存関係のパッケージ)
・
・
省略
・
・
完了しました!

Berkeley DBのインストール

SHELD(bitcoin core)だとDBはBerkeleyを使用しているため、Berkeley DB 4.8をインストールします。

[root@localhost ~]# yum install -y libdb4-cxx-devel-4.8.30-13.el7
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
・
・
省略
・
・
================================================================================
 Package                 アーキテクチャー
                                       バージョン             リポジトリー
                                                                           容量
================================================================================
インストール中:
 libdb4-cxx-devel        x86_64        4.8.30-13.el7          epel         15 k
依存性関連でのインストールをします:
 libdb4                  x86_64        4.8.30-13.el7          epel        607 k
 libdb4-cxx              x86_64        4.8.30-13.el7          epel        635 k
 libdb4-devel            x86_64        4.8.30-13.el7          epel         32 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)
・
・
省略
・
・
完了しました!

libboostのインストール

SHIELD(bitcoin core)のコンパイルに必要なlibboostをインストールします。

[root@localhost ~]# [root@localhost ~]# yum install boost-devel
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
・
・
省略
・
・
================================================================================
 Package                     アーキテクチャー
                                          バージョン           リポジトリー
                                                                           容量
================================================================================
インストール中:
 boost-devel                 x86_64       1.53.0-27.el7        base       7.0 M
依存性関連でのインストールをします:
 boost                       x86_64       1.53.0-27.el7        base        33 k
 boost-atomic                x86_64       1.53.0-27.el7        base        35 k
 boost-chrono                x86_64       1.53.0-27.el7        base        44 k
 boost-context               x86_64       1.53.0-27.el7        base        36 k
 boost-date-time             x86_64       1.53.0-27.el7        base        52 k
 boost-filesystem            x86_64       1.53.0-27.el7        base        68 k
 boost-graph                 x86_64       1.53.0-27.el7        base       136 k
 boost-iostreams             x86_64       1.53.0-27.el7        base        61 k
 boost-locale                x86_64       1.53.0-27.el7        base       251 k
 boost-math                  x86_64       1.53.0-27.el7        base       334 k
 boost-program-options       x86_64       1.53.0-27.el7        base       156 k
 boost-python                x86_64       1.53.0-27.el7        base       129 k
 boost-random                x86_64       1.53.0-27.el7        base        39 k
 boost-regex                 x86_64       1.53.0-27.el7        base       300 k
 boost-serialization         x86_64       1.53.0-27.el7        base       169 k
 boost-signals               x86_64       1.53.0-27.el7        base        60 k
 boost-system                x86_64       1.53.0-27.el7        base        40 k
 boost-test                  x86_64       1.53.0-27.el7        base       223 k
 boost-thread                x86_64       1.53.0-27.el7        base        57 k
 boost-timer                 x86_64       1.53.0-27.el7        base        43 k
 boost-wave                  x86_64       1.53.0-27.el7        base       210 k
 libicu                      x86_64       50.1.2-15.el7        base       6.9 M

トランザクションの要約
================================================================================
インストール  1 パッケージ (+22 個の依存関係のパッケージ)
・
・
省略
・
・
完了しました!

SHIELDのインストール

gitの取得

gitよりSHIELDソースの取得を行います。

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# git clone https://github.com/ShieldCoin/SHIELD.git
Cloning into 'SHIELD'...
remote: Counting objects: 1326, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 1326 (delta 0), reused 0 (delta 0), pack-reused 1322
Receiving objects: 100% (1326/1326), 4.91 MiB | 4.02 MiB/s, done.
Resolving deltas: 100% (404/404), done.
[root@localhost src]# ll
合計 0
drwxr-xr-x 9 root root 315  2月 13 01:19 SHIELD

コンパイル準備

autogen.shを実行します。

[root@localhost src]# cd SHIELD/
[root@localhost SHIELD]# ./autogen.sh
configure.ac:12: installing 'src/build-aux/config.guess'
configure.ac:12: installing 'src/build-aux/config.sub'
configure.ac:48: installing 'src/build-aux/install-sh'
configure.ac:48: installing 'src/build-aux/missing'
configure.ac:724: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
configure.ac:724: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
src/Makefile.am: installing 'src/build-aux/depcomp'
parallel-tests: installing 'src/build-aux/test-driver'

 

configureを実行します。prefixはお好きな場所(インストール先)で

[root@localhost SHIELD]# ./configure --prefix=/opt/xsh/ --with-gui=no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking whether make supports nested variables... (cached) yes
checking whether enable SSE/SSE2 optimizations... yes
checking for g++... g++
checking whether the C++ compiler works... yes
・
・
省略
・
・
config.status: creating src/Makefile
config.status: creating share/setup.nsi
config.status: creating share/qt/Info.plist
config.status: creating qa/pull-tester/run-bitcoind-for-test.sh
config.status: creating qa/pull-tester/build-tests.sh
config.status: creating src/config/SHIELD-config.h
config.status: executing depfiles commands

コンパイル&インストール

おなじみのmake
make -j〇はコンパイルに使用するCPUコア数を設定してください。

[root@localhost SHIELD]# make -j2
make[1]: ディレクトリ `/usr/local/src/SHIELD/src' に入ります
  CXX      libbitcoin_server_a-addrman.o
  CXX      libbitcoin_server_a-alert.o
  CXX      libbitcoin_server_a-bloom.o
  CXX      libbitcoin_server_a-checkpoints.o
  CXX      libbitcoin_server_a-init.o
  CXX      libbitcoin_server_a-db.o
  CXX      libbitcoin_server_a-txdb-leveldb.o
  CXX      libbitcoin_server_a-bitcoinrpc.o
  CXX      libbitcoin_server_a-keystore.o
  CXX      libbitcoin_server_a-main.o
  CXX      libbitcoin_server_a-noui.o
  CXX      libbitcoin_server_a-net.o
net.cpp:1151:13: 警告: ‘void ThreadStakeMinter(void*)’ が定義されましたが使用されません [-Wunused-function]
 void static ThreadStakeMinter(void* parg)
             ^
  CXX      libbitcoin_server_a-rpcblockchain.o
  CXX      libbitcoin_server_a-rpcmining.o
  CXX      libbitcoin_server_a-rpcnet.o
  CXX      libbitcoin_server_a-rpcrawtransaction.
・
・
省略
・
・
/bin/ar -rs libleveldb.a db/builder.o db/c.o db/db_impl.o db/db_iter.o db/dbformat.o db/dumpfile.o db/filename.o db/log_reader.o db/log_writer.o db/memtable.o db/repair.o db/table_cache.o db/version_edit.o db/version_set.o db/write_batch.o table/block.o table/block_builder.o table/filter_block.o table/format.o table/iterator.o table/merger.o table/table.o table/table_builder.o table/two_level_iterator.o util/arena.o util/bloom.o util/cache.o util/coding.o util/comparator.o util/crc32c.o util/env.o util/env_posix.o util/env_win.o util/filter_policy.o util/hash.o util/histogram.o util/logging.o util/options.o util/status.o port/port_posix.o
/bin/ar: libleveldb.a を作成しています
make[2]: ディレクトリ `/usr/local/src/SHIELD/src/leveldb' から出ます
  AR       libbitcoin_util.a
  AR       libbitcoin_server.a
  CXXLD    SHIELDd
make[1]: ディレクトリ `/usr/local/src/SHIELD/src' から出ます
make[1]: ディレクトリ `/usr/local/src/SHIELD' に入ります
make[1]: `all-am' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/SHIELD' から出ます

 

makeが無事に終わったらmake installでインストール

[root@localhost SHIELD]# make install
Making install in src
make[1]: ディレクトリ `/usr/local/src/SHIELD/src' に入ります
make[2]: ディレクトリ `/usr/local/src/SHIELD/src' に入ります
 /bin/mkdir -p '/opt/xsh/bin'
  /bin/install -c SHIELDd '/opt/xsh/bin'
・
・
省略
・
・
make[2]: ディレクトリ `/usr/local/src/SHIELD' に入ります
make[2]: `install-exec-am' に対して行うべき事はありません.
make[2]: `install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ `/usr/local/src/SHIELD' から出ます
make[1]: ディレクトリ `/usr/local/src/SHIELD' から出ます

 

/opt/xsh/にフォルダが作成され、binフォルダ内にSHIELDdがあればインストール完了です。

[root@localhost SHIELD]# cd /opt/xsh
[root@localhost xsh]# ll
合計 0
drwxr-xr-x 2 root root 21  2月 13 02:01 bin
[root@localhost xsh]# ll bin/
合計 56236
-rwxr-xr-x 1 root root 57581816  2月 13 02:01 SHIELDd

confファイルの作成

SHIELDを実行するにはconfファイルが必要になりますので作成します。
confファイルの場所を/opt/xsh/etcに格納します。

[root@localhost xsh]# mkdir /opt/xsh/etc
[root@localhost xsh]# cd etc/
[root@localhost etc]# vim shield.conf

 

SHILEDウォレットをデーモン化にし、JSON-RPCの接続を受け付けるように設定します。

たぶん、設定はbitcoin coreと同じだと思います。(bitcoin wiki 参照)

rpcuser=test
rpcpassword=test
rpcport=8332
rpcallowip=127.0.0.1
server=1
daemon=1

SHILEDウォレットの実行

Dataディレクトリの作成

編集が終わればウォレットデータ格納ディレクトリを作成します。

[root@localhost etc]# cd ../
[root@localhost xsh]# ll
合計 0
drwxr-xr-x 2 root root 21  2月 13 02:01 bin
drwxr-xr-x 2 root root 25  2月 13 02:17 etc
[root@localhost xsh]# mkdir var
[root@localhost xsh]# chmod 600 var
[root@localhost xsh]# ll
合計 0
drwxr-xr-x 2 root root 21  2月 13 02:01 bin
drwxr-xr-x 2 root root 25  2月 13 02:17 etc
drw------- 2 root root  6  2月 13 02:18 var

ウォレットの実行

ここまできたらSHIELDウォレットを実行するだけです。

[root@localhost xsh]# /opt/xsh/bin/SHIELDd -daemon -datadir=/opt/xsh/var/ -conf=/opt/xsh/etc/shield.conf
SHIELD server starting
[root@localhost xsh]# ps aux|grep SHIELD
root      7631 59.6 14.9 914824 151632 ?       SLsl 02:21   0:39 /opt/xsh/bin/SHIELDd -daemon -datadir=/opt/xsh/var/ -conf=/opt/xsh/etc/shield.conf
root      7644  0.0  0.0 112676   976 pts/0    S+   02:22   0:00 grep --color=auto SHIELD

 

varフォルダの使用データが増えていってれば正常に動作しています。

[root@localhost xsh]# du -xsh /opt/xsh/var/
33M     /opt/xsh/var/

 

SHIELDの場合、2018年02月13日02時時点で約460MBになります。
また、「/opt/xsh/bin/SHIELDd -conf=/opt/xsh/etc/shield.conf getinfo」でも稼働状況がわかります。

[root@localhost xsh]# /opt/xsh/bin/SHIELDd  -conf=/opt/xsh/etc/shield.conf getinfo
{
    "version" : "v2.3.0.0-84ab588-funky-beta",
    "protocolversion" : 90005,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "newmint" : 0.00000000,
    "stake" : 0.00000000,
    "blocks" : 55592,
    "moneysupply" : 209592000.00000000,
    "connections" : 7,
    "proxy" : "",
    "ip" : "123.223.238.129",
    "pow_algo_id" : 0,
    "pow_algo" : "scrypt",
    "difficulty" : 0.00835942,
    "difficulty_x17" : 0.00024414,
    "difficulty_scrypt" : 0.00835942,
    "difficulty_groestl" : 56.35033554,
    "difficulty_lyra2re" : 0.16505603,
    "difficulty_blake" : 0.00024414,
    "testnet" : false,
    "keypoololdest" : 1518456087,
    "keypoolsize" : 101,
    "paytxfee" : 0.05000000,
    "errors" : ""
}
[root@localhost xsh]#

blocksが増えていってることで同期されていることが確認できます。

コマンド

コマンド実行する際、「/opt/xsh/bin/SHIELDd -conf=/opt/xsh/etc/shield.conf 〇〇」になるようです。

[root@localhost xsh]# /opt/xsh/bin/SHIELDd  -conf=/opt/xsh/etc/shield.conf help
addmultisigaddress <nrequired> <'["key","key"]'> [account]
backupwallet <destination>
checkwallet
createrawtransaction [{"txid":txid,"vout":n},...] {address:amount,...}
decoderawtransaction <hex string>
dumpprivkey <SHIELDaddress>
encryptwallet <passphrase>
getaccount <SHIELDaddress>
getaccountaddress <account>
getaddressesbyaccount <account>
getbalance [account] [minconf=1]
getblock <hash> [txinfo]
getblockbynumber <number> [txinfo]
getblockcount
getblockhash <index>
getblocktemplate [params]
getcheckpoint
getconnectioncount
getdifficulty
getgenerate
gethashespersec
getinfo
getmininginfo
getnewaddress [account]
getnewpubkey [account]
getpeerinfo
getrawblockbynumber <number>
getrawmempool
getrawtransaction <txid> [verbose=0]
getreceivedbyaccount <account> [minconf=1]
getreceivedbyaddress <SHIELDaddress> [minconf=1]
gettransaction <txid>
getwork [data]
getworkex [data, coinbase]
help [command]
importprivkey <SHIELDprivkey> [label]
keypoolrefill
listaccounts [minconf=1]
listaddressgroupings
listreceivedbyaccount [minconf=1] [includeempty=false]
listreceivedbyaddress [minconf=1] [includeempty=false]
listsinceblock [blockhash] [target-confirmations]
listtransactions [account] [count=10] [from=0]
listunspent [minconf=1] [maxconf=9999999]  ["address",...]
makekeypair [prefix]
move <fromaccount> <toaccount> <amount> [minconf=1] [comment]
repairwallet
resendtx
reservebalance [<reserve> [amount]]
sendalert <message> <privatekey> <minver> <maxver> <priority> <id> [cancelupto]
sendfrom <fromaccount> <toSHIELDaddress> <amount> [minconf=1] [comment] [comment-to]
sendmany <fromaccount> {address:amount,...} [minconf=1] [comment]
sendrawtransaction <hex string>
sendtoaddress <SHIELDaddress> <amount> [comment] [comment-to]
setaccount <SHIELDaddress> <account>
setgenerate <generate> [genproclimit]
settxfee <amount>
signmessage <SHIELDaddress> <message>
signrawtransaction <hex string> [{"txid":txid,"vout":n,"scriptPubKey":hex},...] [<privatekey1>,...] [sighashtype="ALL"]
stop <detach>
submitblock <hex data> [optional-params-obj]
validateaddress <SHIELDaddress>
validatepubkey <SHIELDpubkey>
verifymessage <SHIELDaddress> <signature> <message>

使い方については後日

 

スポンサードリンク

スポンサードリンク

-linux, サーバー, 仮想通貨
-, , ,

Copyright© かえでBlog , 2018 All Rights Reserved.