jhoenicke / mempool Goto Github PK
View Code? Open in Web Editor NEWBitcoin Mempool Statistics
License: GNU Affero General Public License v3.0
Bitcoin Mempool Statistics
License: GNU Affero General Public License v3.0
Hello!
I cloned your git and set everything up but when I click 'btc (default mempool)' it shows an upside chart that goes into the negative. Any idea what's up?
I'm not sure where this data is being pulled from. I assume my own node? It's being run off apache2 on ubuntu 18.04 lts.
The updatedata.sh script keeps updating all .js files but instead of appending data points to it, it always keeps a single value, replacing them every minute when the crontab runs
(the Mysql table is increased one record per minute though).
Is this behaviour expected?
It appears the dedi...... site has no favicon. Figured you would like to know
hi jhoenicke. im not a developer but i like to use the site. i had a small sugestion. do you think you could add which day it is on the bottom axis? then ppl who use the site can sort of get an idea which days are the most active. i mean right now the date is there, which is great, but having to cross check with calandar to figure out if there is a pattern (ie. are weekends really not as busy as other days?) it gets kinda tedius, do you know what i mean? anyway i really like site, well done. Have a nice day.
I always like to check out the 2h graph because I can visualize if fee went up because of slower than normal blocks by comparing the frequency of drop with 10min bars.
It would be amazing if we could have that for 8 and 24h chart.
Would it be possible to create third type of chart - which would show value of Bitcoins transacted? (i.e. not total fee like you show on hover, but total coins transacted)
Page text says:
Donation Bitcoin: bc1ql4rl5lh2tuunt3jd75nymzdffgm6yaml8kkrmw (Segwit)
but it links to:
bitcoin:3BXqhoLBCBdUGxTbrkBVmkedmGgJ4wNpsg
Are those two different addresses? Do they both work? Is there a better one to use? Bitcoin Core accepts them both as valid destinations.
In the current rendering, when lower fee transactions are added to the mempool, higher fee transactions are pushed up, which doesn't reflect anything about reality. If the vertical axis were inverted and rendered from top to bottom, then adding higher fee transactions pushes lower feed transactions deeper into the mempool. (see even the language works better).
On the Litecoin mempool it still says fees in BTC. It also says bitcoin in the text at the bottom of the page.
By following the install instructions you end up with an installation that retrieves the initial graph data from dedi.jochen-hoenicke.de. I had to change the urls in config in mempool.js so that data was loaded from my local sources and not remotely.
Towards the end of the page I see:
You can also click in the legend to toggle the visibility of the total fee statistics.
I have been unable to find anywhere I can click in the legend that toggles visibility of anything. I see I can click on different fee levels there to remove low fee bands from the display, but I think this sentence is talking about something else.
Am I just missing it, or is the text wrong?
Trying to get this running using Bitcoin v0.17 and I keep running into the following error:
Illegal division by zero at mempool-sql.pl line 30, <> line 8.
The getrawmempool RPC call in v0.17 returns a new property "fees" that appears to have broken the mempool-sql.pl script. The script runs without error if the "fees" property is removed from the output.
Hi,
Not sure if this is the appropriate place but people on reddit are wondering what is up with the BCH mempool and lots of people rely on your site for visualizing it.
Right now there's a backlog of <1 sat/B tx's in the BCH mempool and your categorization code bins all of them in the 0-5 range.
Perhaps it would be helpful to the community if you were to color code <1 sat/B tx's differently and bin them together so users can quickly see the "stress test" tx's filling up the mempool versus the actual real tx's?
Thanks!
It can be useful to illustrate how many assets are waiting to confirm.
It would be nice to see what the configured maximum mempool size was at any given time. Maybe as a red line in the chart.
I'm running a mirror of the service but went to compare results and found https://jochen-hoenicke.de is currently down. Getting "The site can't be reached." from Chrome.
Several wallets (such as Zap / Zap iOS, LND via lncli) will not let you modify the amount contained in a lightning payment-request, which will then default to 0 satoshis.
You should therefore either add a default amount (say 5k or 10k satoshis, multiple donations are cheap) or even better add different options or a form to ask the user how much he/she would like to donate (in satoshis) before creating the payment-request.
The easy solution would be to just add an amount when creating the invoice (web/lnd/invoice-mp.py:39). :)
The lowest band is 0-5. Consider a bottom band of 0 and then 1-5 above it; this will highlight the amount of 0-fee spam.
0-5 and 5-10 leaves the question: If the transaction is exactly 5 satoshis per byte, which color is it?
Perhaps make a note on the site: "for each level lower bound inclusive upper bound exclusive" etc.
If there's some way to make this obvious in the fee level legend it would be best, but I'm not a UI guy.
Hi, i i think the site is pretty interesting. But i was wondering why there is not a Core node?
I can only choose between SegWit2x UASF and CASH. I think the Core node is the most interesting.
Ignoring ancestorfees and descendantfees provides a potentially very incomplete look at the mempool's feerates - as a rough approximation of "effective feerate" of a transaction, you might consider doing max((ancestorfees + descendantfees)/(ancestorsize + descendantsize), min(fee/size, ancestorfees/ancestorsize)).
This avoids listing high-fee transactions which depend on many low-fee ancestors as high-fee, as well as allows transactions which have been CPFP'd to be listed as higher "effective feerate", at least modulo trying to figure out what the "real" "effective feerate" of a transaction is by exploring which descendant (groups) are higher feerate.
This would be especially useful for the "Mempool size" view, which some people use to select feerates on their transactions.
For a long time, I was unaware of the feature described as:
You can click on some fee level in the legend to hide all fee levels below that level. This way you can better see how many transactions are competing with that fee level.
I'm glad I read the documentation, this feature is incredible for ignoring the irrelevant portion of the plot. Specifically, when deciding what fee to pay, only higher (not lower) paying transactions matter. In the screenshot below, I'm ignoring all fees below 200 sat/B:
However, the fee levels are still too wide to enable super-optimized fee determination. For example, what's the mempool size over time at 270 sat/B? It would be helpful to be able to set a custom "ignore below" fee level. In the above example, if one could manually evaluate the mempool size for any fee level between 200 and 300, they could more fully optimize their transaction fee.
I'm not sure about the technical feasibility or the best design. @jhoenicke what do you think?
On an unrelated note, I think the "Mempool Size in MB" plot should be moved to the top, since it's most relevant to the most users. Block size is the actual limited resource (not transaction count or pending fees) that users are competing for when determining what fee to pay. And the effect of mempool clearing causing by a single block is most predictable with this plot.
First entry of data is always zero:
see the bold zeros below in the data that i copied from my server:
Any help of why this does not match your webserver would be much appreciated.
I believe these zeros represent the total number of transactions with 0 sats (free txs)
[1546751762,[0,50,41,19,6,2,4,1,5,11,2,0,1,5,3,7,1,2,2,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,14012,13089,4787,1452,684,1021,315,1125,2658,514,0,168,1222,1976,3159,225,889,449,0,223,0,0,216,255,0,0,324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,17958,35226,15052,6038,3573,6480,2211,10000,27213,6192,0,2977,26984,53090,111195,10000,45985,27300,0,20000,0,0,32400,50000,0,0,100000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
Why is the mouse over scale not start with "0+"?
5+ tell my brain that it count from 5 to next level, < 10
It would be nice if the chart spaced was used better when filtering out low fee transactions.
For example when I filter for transactions above 200sat/B, only the bottom 20% of the chart are used.
Since about 2 weeks it takes many minutes to load and now not loading after 10min
Anyone know for an alternative instance available?
On the legend I see a color is defined for tx that pay "0-1" sat/B, but I never see a band of that color in the charts.
It might be better not to show that range in the legend if the color isn't used in the chart.
I believe the color bands for BTC are out of sync by 1 level based on the numbers.
12/22/17
I don't think as many people need to lookup precisely the color to fee range in the chart.
I feel like there is about 5 similar shades of blue that repeat multiple time, I think going
I feel like repeating twice the RGB spectrum at two tones my be enouth to differentiate clearly the interval for those who care this much.
The average fees on BSV are below 0.5 sat/byte.
Hence the used scale of 0-1 sat/byte and going up to 500+ sat does not reflect the situation on BSV.
Instead the scale should show ranges with fraction of satoshi levels so that it is possible to see e.g. 0.25 sat/byte payments.
Currently the mempool in kB is a value with kB as the y axis and hovering the mouse let's you see how many cumulative kB consist of each fee level group + all the above.
I also think it would be good to have another separate graph which is a line, the y axis is satoshi per byte, and each plot would tell you "gathering all transactions from highest sat/byte rate to lowest, what is the sat/byte rate of the last transaction which fits within 1000kB?"
Maybe the graph could have 3-5 lines, each line being
"... 500kB"
"... 750kB"
"... 1000kB"
"... 2000kB"
"... 3000kB"
This way people can get a good idea of "ok, well if I aim for the fee of the 750kB line, and a block isn't found for a while, I might take 2 or 3 blocks, but if found in a reasonable time next block (etc etc)"
I use this site to get an eyeball for the actual fees I need to pay (bitcoind estimatefee is garbage, and most wallets still use it) and having those lines parallel each other will give me a better understanding of where to eyeball my fees.
When following the install instructions, mempool.log doesn't exist so all the *.js files are not setup correctly. Shows errors:
cat: mempool.log: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
tail: cannot open 'mempool.log' for reading: No such file or directory
./mkdata.sh: line 8: mempool.log: No such file or directory
root@dev:~/.bitcoin# bitcoin-cli getinfo
{
"deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
"version": 150100,
"protocolversion": 70015,
"walletversion": 139900,
"balance": 133333333333333333333337,
"blocks": 500643,
"timeoffset": -100,
"connections": 530,
"proxy": "",
"difficulty": 1873105475221.611,
"testnet": false,
"keypoololdest": 1513424469,
"keypoolsize": 2000,
"paytxfee": 0.00000000,
"relayfee": 0.00001000,
"errors": ""
}
Both "Unconfirmed transaction count" and "Pending transaction fees" can be manipulated to show very different chart.
A 500KB transaction would barely show in the transaction count.
200MB worth of 1 Sat/byte would create a big spike on the total fee chart without being that relevant.
We use this tool to estimate the best transaction fee so we're always and only checking the last graph. "Mempool size"
The support for zoom on the X axis is great, but on Y doesn't exist at all.
I notice you have an ETH donation address. Have you considered adding ETH as one of the supported coins (BTC, BCH, BSV, DASH)?
Great visulations at Johoe's Mempool Statistics!
Have you considered using millibytes megabytes (mB) rather than kilobytes (kB) for the memory pool figure:
This will make it easier to mentally estimate how many blocks would be required to clear the entire mempool. It also seems like the mempool is often now in the range of multiple megabytes.
The only chart we check is the last one, It'd be great if it could be isolated on it's own page. It might even save some loading ressources.
As more and more transactions use segwit, the price per weight unit calculation becomes more important than sat/byte. So it would be interesting to be able to switch to sat/wu.
Hi!
Fantastic tool for a bitcoin user! I was using this site every time I need to transfer bitcoin.
As someone has said on another Issues thread, we should put the "Mempool size in fee" chart to the top.
And while you're at it, please create an API call to get the best fee at calling time (the fee that will fit in 1MB size). I think most of us is best interested in that information.
I was looking into the code and since I got almost zero knowledge about web and javascript programming, I got no clue how your website connect and get information from your mempool and how I can utilize that to create for example a Python script to get data from your mempool. I don't know if you'd allow that.
Cheers,
Thai
From web/que/mempool.js --> Bitcoin SV 0.1.0.
...
{"name":"BSV",
"title":"Bitcoin SV 0.1.0.",
"url":"https://sv.jochen-hoenicke.de/queuesv/",
"symbol":"BSV",
"satPerUnit": 100000000.0,
"feelevel": 1,
"ranges": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 17, 20, 25, 30, 40, 50, 60, 70, 80, 100, 120, 140, 170, 200, 250, 300, 400, 500, 600, 700, 800, 1000, 1200, 1400, 1700, 2000, 2500, 3000, 4000, 5000, 6000, 7000, 8000, 10000 ],
"show": [ 0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,22,23,24, 25, 26, 27, 28, 29 ],
"colors": [ "#535154", "#001080", "#349dac", "#a21010", "#7e5e82", "#84b200", "#a0d0cd",
"#c7b52e", "#6cbbea", "#514f4c", "#4e7fbb", "#9f63a0",
"#f69445", "#349dac", "#c7b52e", "#514f4c", "#c14540",
"#7e2e82", "#54b200", "#1e7fbb", "#f67405", "#60e0cd",
"#e12000", "#123456", "#fe3dba", "#349d00", "#bd00ed",
"#001080"],
"inc": true},
...
I believe you are using a pre Genesis hard fork version of the BitcoinSV software. Update your node software to version 1.0.0 or later to obtain accurate data from the Bitcoin SV mainnet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.