example實(shí)例分析
example提供了兩種私密交易管理残炮,兩種共識(shí)機(jī)制缩滨,兩兩可以互相結(jié)合使用。
私密交易管理
- constellation-start.sh
- 點(diǎn)對(duì)點(diǎn)私密交易
- Haskell語言編寫
- tessera-init.sh苞冯,tessera-start.sh
- 企業(yè)級(jí)交易管理器
- java語言編寫
共識(shí)機(jī)制
- raft-init.sh侧巨,raft-start.sh raft共識(shí)機(jī)制司忱,效率高,不支持惡意節(jié)點(diǎn)
- istanbul-init.sh鳍烁,istanbul-start.sh 拜占庭共識(shí)機(jī)制幔荒,允許少于1/3惡意節(jié)點(diǎn)
constellation+raft 環(huán)境搭建
安裝依賴庫
apt-get install libdb-dev libleveldb-dev libsodium-dev zlib1g-dev libtinfo-dev
下載quorum
git clone https://github.com/jpmorganchase/quorum.git
git checkout v2.1.0
cd quorum
make all
編譯完成后,會(huì)在quorum/build/bin目錄下生成一些可執(zhí)行命令姚垃,類似:
abigen bootnode evm examples faucet geth p2psim puppeth rlpdump swarm wnode
下載costellation-node
//下載
wget https://github.com/jpmorganchase/constellation/releases/download/v0.3.2/constellation-0.3.2-ubuntu1604.tar.xz
//解壓
xz -d constellation-0.3.2-ubuntu1604.tar.xz
//打開
tar -xvf constellation-0.3.2-ubuntu1604.tar
執(zhí)行完后會(huì)在~/constellation-0.3.2-ubuntu1604目錄下發(fā)現(xiàn)constellation-node可執(zhí)行文件积糯。
將constellation-node配置在環(huán)境變量中
下載quorum-examples
git clone https://github.com/jpmorganchase/quorum-examples.git
初始化7個(gè)節(jié)點(diǎn)
cd /quorum-examples/examples/7nodes
sudo ./raft-init.sh
啟動(dòng)constellation
sudo ./constellation-start.sh
可以通過以下命令查看啟動(dòng)的進(jìn)程
ps -ef | grep constellation-node
殺掉所有constellation-node進(jìn)程
sudo killall constellation-node
啟動(dòng)geth節(jié)點(diǎn)和constellation節(jié)點(diǎn)
./raft-start.sh
驗(yàn)證節(jié)點(diǎn)是否成功啟動(dòng)
geth attach qdata/dd1/geth.ipc
>Welcome to the Geth JavaScript console!
私密交易失敗
https://github.com/jpmorganchase/quorum-examples
github上直接說明了絮宁,在本地環(huán)境搭建的quorum不支持Constellation绍昂。
Rejected peer before protocol handshake id=ac6b1096ca56b9f6 addr=127.0.0.1:21000 conn=staticdial err="connected to self"
tessera+raft 環(huán)境搭建
安裝依賴
下載安裝tessera
git clone https://github.com/jpmorganchase/tessera.git
maven install
安裝完成后,需要將/tessera/tessera-app/target目錄下的tessera-app-0.7-SNAPSHOT-app.jar配置到
tessera-start.sh文件中。
下載quorum
git clone https://github.com/jpmorganchase/quorum.git
git checkout v2.1.0
cd quorum
make all
編譯完成后唠椭,會(huì)在quorum/build/bin目錄下生成一些可執(zhí)行命令,類似:
abigen bootnode evm examples faucet geth p2psim puppeth rlpdump swarm wnode
下載quorum-examples
git clone https://github.com/jpmorganchase/quorum-examples.git
初始化7個(gè)節(jié)點(diǎn)
cd /quorum-examples/examples/7nodes
sudo ./raft-init.sh
啟動(dòng)geth節(jié)點(diǎn)和constellation節(jié)點(diǎn)
./raft-start.sh
驗(yàn)證節(jié)點(diǎn)是否成功啟動(dòng)
geth attach qdata/dd1/geth.ipc
>Welcome to the Geth JavaScript console!