Bitcoin Forum
November 14, 2024, 02:35:14 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Estimating transaction confirmation Time  (Read 309 times)
btc_enigma (OP)
Hero Member
*****
Offline Offline

Activity: 692
Merit: 569


View Profile
December 13, 2017, 10:23:30 AM
Last edit: December 13, 2017, 10:46:53 AM by btc_enigma
 #1

Hi,

We are developing a project similar to https://bitcoinfees.earn.com/ . We know that bitcoinfees is giving widely inaccurate results. We need to develop a algorithm that can predict confirmation time with reasonable accuracy (or atleast better than bitcoinfees)

Factors that can taken into consideration:

- Mempool size
- Hashrate
- Rate of incoming transactions


Let me know your thoughts on this. If you have any ideas on the algorithm. I am open to keep this opensource(directly connected to bitcoind).



Xynerise
Sr. Member
****
Offline Offline

Activity: 322
Merit: 363

39twH4PSYgDSzU7sLnRoDfthR6gWYrrPoD


View Profile
December 13, 2017, 11:16:17 AM
 #2

You can take a look at bitcoin core's implementation of fee estimation:
https://bitcointechtalk.com/an-introduction-to-bitcoin-core-fee-estimation-27920880ad0

This is the code itself:
https://github.com/bitcoin/bitcoin/blob/master/src/policy/fees.h
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3080



View Profile
December 13, 2017, 06:29:57 PM
 #3

We are developing a project similar to https://bitcoinfees.earn.com/

This is probably just a way of promoting the Earn product, the real URL is likely still https://bitcoinfees.21.co

Sadly, https://21.co hosts other inaccurate and/or inept Bitcoin network statistics too.


Factors that can taken into consideration:

- Mempool size
- Hashrate
- Rate of incoming transactions

You should also add transaction weight to your list of factors. This is probably part of how https://bitcoinfees.21.co are getting it so wrong.

Possibly an "Advanced User" option could be added, to depict the effect of transaction weight on the outcome.



Vires in numeris
btc_enigma (OP)
Hero Member
*****
Offline Offline

Activity: 692
Merit: 569


View Profile
December 14, 2017, 07:14:33 AM
 #4


Thanks, very useful. Will have a look at this


Quote
You should also add transaction weight to your list of factors

Yes, good idea

btc_enigma (OP)
Hero Member
*****
Offline Offline

Activity: 692
Merit: 569


View Profile
December 14, 2017, 02:06:45 PM
 #5

I had a look at core's estimation algorithm. Here are my thoughts from my personal experience:

1. If you did a transaction less than 50sat/byte, its likely to get confirmed over weekend. Doesn't matter if you did the transaction on Monday or on Friday.
2. Higher rate transaction 100+ sat/byte get confirmed within a few blocks, or during daily dip of demand graph(mostly during US night time) or sudden increase of hashrate/streak of blocks
3. Due to 1., core's estimate also does get skewed, for example a low fee tx on Friday night has confirmation time of few blocks, vs same fee tx on Monday night has conf time of thousands of blocks. However, the decay algorithm that prioritizes recent block, does offset this
4. Amount of time a transaction has spent in mempool doesn't effect its confirmation time except a transaction that hasn't reached many nodes. When a block arrives , current set of TX collected by miner may be invalid (due to conflicts). A miner is incentivized to sort the current mempool TX in decreasing feerate after each block.


If we can correctly model the demand graph, it should be possible to reasonably predict confirmation time. I understand there are sudden changes, but overall there are the repeated patterns (like weekend/daily dips).

Feel free to let me know your thoughts

kahc
Member
**
Offline Offline

Activity: 350
Merit: 13


View Profile
December 14, 2017, 03:29:12 PM
 #6

Average transactions processed in 10 minutes( for example for the past 100 blocks). So we get a roughly idea of the rate of incoming vs processing rate.

For example:
If the mempool has 2000 transactions that are weighted at 300+ Sat/B , and the incoming txs rate is 0 at the moment.
Lets say the processing rate is about 2000txs per 10 minutes, your algorithm can then determine that the next in the queue are transactions weighted at 300+ Sat/B.


btc_enigma (OP)
Hero Member
*****
Offline Offline

Activity: 692
Merit: 569


View Profile
December 26, 2017, 07:01:23 AM
 #7

We are hiring a developer for this project .

Feel free to write if you are interested

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!