0
私はweb3j
とGeth
でスマートコントラクトをテストしています。 ゲスは、そのようなスクリプトで実行されている:プライベートブロックチェーンのゲットトランザクションを高速化するにはどうすればよいですか?
PASSFILE=/var/folders/_l/kl9pdj2x50v7416j8htb6w740000gn/T/pwd6597172766860806720.tmp
DATADIR=/var/folders/_l/kl9pdj2x50v7416j8htb6w740000gn/T/geth808290308908087582
IPCPATH=/var/folders/_l/kl9pdj2x50v7416j8htb6w740000gn/T/geth808290308908087582/geth.ipc
geth --datadir $DATADIR account new --password $PASSFILE
geth --datadir $DATADIR \
--ipcpath $IPCPATH \
--dev \
--rpc \
--mine \
--networkid 1999
(経路がテストで生成されます)。
スマートコントラクトラッパーはweb3j-maven-plugin
で生成されます。
166955 [main] INFO FeatureTest - Deploying feature ...
182006 [main] INFO FeatureTest - Checking feature is listed ...
Web3jはIPCを介して接続されています:
(あなたは1つのトランザクションが16秒かかっ見ることができます)private TransactionReceipt deployFeature_() throws Exception {
logger.info("Deploying feature ...");
return contract.deployFeature(featureKey).send();
}
ログ:
問題は、すべてのsend()
呼び出しが数秒かかることです
web3 = Web3j.build(new UnixIpcService(ipcPath));
私はどのようにスピードアップの呼び出しをすることができますか? TestRPC
の呼び出しですべての呼び出しが1秒未満で済む場合! Geth
は--dev
で開始されるので、起源ファイル自体を生成するため、難易度を変更することはできません。また、ブロックが非常に高速にマイニングされていることがわかります。
INFO [11-09|00:34:39] Commit new mining work number=9 txs=0 uncles=0 elapsed=2.000s
INFO [11-09|00:34:39] Successfully sealed new block number=9 hash=b869ca…870644
INFO [11-09|00:34:39] block reached canonical chain number=4 hash=c758a0…a529af
INFO [11-09|00:34:39] mined potential block number=9 hash=b869ca…870644
INFO [11-09|00:34:39] Commit new mining work number=10 txs=0 uncles=0 elapsed=84.12µs
INFO [11-09|00:34:40] Successfully sealed new block number=10 hash=5e81a9…fc1364
INFO [11-09|00:34:40] block reached canonical chain number=5 hash=465c2b…78461a
INFO [11-09|00:34:40] mined potential block number=10 hash=5e81a9…fc1364
何らかの理由で呼び出しが高速ではありません。私に何ができる?
は、適切なキャッシュ値で 'GETH --cache XXX'を起動しよう。デフォルトでは128MBです – palik
私はちょうど '--fast --cache = 1024'を試しましたが、ブロックは採掘されてから1秒毎 – 4ntoine