質問は非常に簡単ですが、答えは...わかりません!!
質問は、マイニングが終了するまでゲスで行われている間、HTMLページでブートストラップを使用して進行状況バーを表示する方法です。
マイニングが発生すると、プログレスバーは進行状況を表示し、100% を表示し、マイニングまたはトランザクションが成功した後に消える必要があります。
私たちはこれを行うことができますか?
質問は非常に簡単ですが、答えは...わかりません!!
質問は、マイニングが終了するまでゲスで行われている間、HTMLページでブートストラップを使用して進行状況バーを表示する方法です。
マイニングが発生すると、プログレスバーは進行状況を表示し、100% を表示し、マイニングまたはトランザクションが成功した後に消える必要があります。
私たちはこれを行うことができますか?
マイニングやブロックの発見が「宝くじ」であることを考えると、たとえば 0 から 5% までのトップ パスに基づいてプログレス バーを設定できる「決定論的」な方法はありません。
ハッシュ化されたパスワードをブルートフォースするプログレス バーの処理方法を尋ねるようなものです。
@onepix の答えは一般的に正しいですが、次のブロックが見つかるまでの時間を予測することはできません。ただし、できることは、15 秒ごとに新しいブロックを期待し、最後のブロックからの秒数をカウントしてパーセントを計算するプログレス バーを使用することです。
web3 から最新のタイムスタンプを取得するには:
let tlast = web3.eth.getBlock(web3.eth.blockNumber).timestamp;
現在のタイムスタンプを取得するには:
let tnow = Date.now() / 1000.0;
パーセントを計算するには、15 秒のターゲットに基づいて計算を行います。
let perc = (tnow - tlast) / 15.0 * 100.0;
結果は で正の値になりますが、%
ブロックが見つからない場合は 100% を超えることに注意してください。の値をどのように処理するかは、自分で決めることができますperc >= 100
。