PyContractのTestnetへの参加方法を説明します。
ただ今、close alphaです。
Testtnetは頻繁に仕様変更が行われ新規作成される事が予想されます。
参加に制限はありません。
Ubuntu18.04, CentOS7, Raspberian or Windows10がインストールされたPCを用意します。慣れていない場合はUbuntu18.04が最も簡単なので選択してください。環境はローカルであれVPSであれポート開放を推奨します。
既に前準備で必要ライブラリをインストールし、Python3を導入し、Userを作成しログインしたものとします。
mkdir blockchain-py && cd blockchain-py
wget -O boot.json https://pastebin.com/raw/UeRRqNmZ
git clone -b develop https://github.com/namuyan/bc4py
rm -rf bc4py/tests bc4py/doc && mv bc4py tmp && mv tmp/* . && rm -rf tmp
必要なファイルをDLします。
# for Linux
curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly
cargo -V # cargo X.XX.X-nightly
Rustのnightly(特別な開発版) インストールします。
対話型コンソールが開きコマンドを入力していきます。 引数を与える事でコマンドを入力して操作する必要は無くなりました。
オプションを変更しないとstable(安定版)が勝手にインストールされますので注意して下さい。
完了しましたらcargo -V
にてversionを確認して下さい。
もしもコマンドが効かない場合、変更を反映させる為、一度コンソールを閉じてまた開きます。
pipをインストールします。
pip3 -V
によりpipの存在を確認します。
pipの存在を確認できる場合、sudo pip3 install --upgrade pip
によりpipをUpgradeして下さい。pipの存在を確認できない場合、curl -kL https://bootstrap.pypa.io/get-pip.py | python3
により新規にインストールし、そのあとに忘れずにpipをupgradeして下さい。
もしもImportError: cannnot import name 'main'
と出る場合、こちらのブログをご覧下さい。
次に先ほど作成したblockchain-pyフォルダへ移動します。
必要なPythonライブラリをインストールします。
pip3 install --user wheel
pip3 install --user setuptools
pip3 install --user setuptools-rust
apt-get install python3-dev
apt-get install libgmp3-dev
apt-get install libssl-dev
pip3 install --user -r requirements.txt
pip3 install --user -r requirements-c.txt
requirements-c.txt こちらのファイルにはコンパイルが必要になるものをリストしてあります。
前準備 にて必要なコンパイラーソフトをインストールしておいてください。
PEP517のエラーが出る場合はnoteを参照して下さい。
screen -S p2p
python3 publicnode.py
仮想端末上にノードを起動します。
curl 127.0.0.1:3000/public/getsysteminfo
によりbooting:false
を確認できましたら同期が終了しています。
2000(TCP/UDP)
、API(REST/WS)には3000(TCP)
を使用します。yum update
adduser p2p
passwd p2p
usermod -aG wheel p2p
yum -y install git libffi-devel zlib-devel gcc gcc-c++
yum -y install xz bzip2 bzip2-devel sqlite-devel openssl-devel readline-devel
yum -y install ncurses-devel tk-devel
yum -y install gmp-devel mpfr-devel libmpc-devel
Rootユーザーにてp2p
アカウントを作成し、必要なパッケージをインストールします。
curl -O https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
tar xf Python-3.7.2.tgz && rm Python-3.7.2.tgz
cd Python-3.7.2
./configure --enable-optimizations
make
sudo make altinstall
Python環境を整えます。
Python3.7.2を使用しましたがPython3.6以上ならば問題ありません。
python3.7 -V # Python 3.7.2
pip3.7 -V
pip3.7 install -U --user pip
バージョンチェック
sudo
でPython3を使用したい場合は参考記事を参照して下さい。
CentOSはマイナーバージョンまで必要なので注意して下さい。
sudo ln -s /usr/local/bin/pip3.7 /usr/bin/pip3
sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3
このようにpip3
へリンクを貼り付けると良さそうです。
さらにこれならばsudo
も使用できます。
ERROR: Could not build wheels for XXX which use PEP 517 and cannot be installed directly
環境により生じるエラー、ソースを直接DLしコンパイルしなければならない。
???.whl
は環境依存なので適宜修正して下さい。
git clone https://github.com/namuyan/ed25519-dalek
cd ed25519-dalek
cargo build --release
python3 setup.py bdist_wheel
pip3 install --user dist/????.whl
cd ..
git clone https://github.com/namuyan/multi-party-schnorr
cd multi-party-schnorr
cargo build --release
python3 setup.py bdist_wheel
pip3 install --user dist/????.whl