nervosnetwork / ckb

The Nervos CKB is a public permissionless blockchain, and the layer 1 of Nervos network.
https://www.nervos.org
MIT License
1.15k stars 228 forks source link

feat: add estimate_fee_rate rpc #4465

Closed quake closed 2 months ago

quake commented 4 months ago

What problem does this PR solve?

resolve https://github.com/nervosnetwork/ckb/issues/3673

What is changed and how it works?

Since CKB transaction confirmation involves a two-step process: 1) propose and 2) commit, it is complex to predict the transaction fee accurately with the expectation that it will be included within a certain block height.

This PR relies on two assumptions and uses a simple strategy to estimate the transaction fee: 1) all transactions in the pool are waiting to be proposed, and 2) no new transactions will be added to the pool. In practice, this simple method should achieve good accuracy fee rate and running performance.

The rpc parameter target_to_be_committed is limited to 3~131, because the minimum value of the proposal window is 2, which is equivalent to predicting the height of current_tip + 1 ~ 128.

Check List

Tests

Release note

Title Only: Include only the PR title in the release note.
quake commented 2 months ago

merged into #4477