mirror of
https://github.com/Rucknium/misc-research.git
synced 2024-12-22 11:29:22 +00:00
Update fee data to 2023-10-17. Add Exodus Desktop wallet fee plot
This commit is contained in:
parent
e9ff8e6a3f
commit
0fb1ff2ab6
10 changed files with 1931 additions and 1805 deletions
|
@ -6,7 +6,7 @@ The data in this directory can help identify which wallet implementations may be
|
||||||
|
|
||||||
## Identification of nonstandard fees in Monero
|
## Identification of nonstandard fees in Monero
|
||||||
|
|
||||||
The tabulation of nonstandard fees will use "nanonero" as the basic unit. A [nanonero](https://web.getmonero.org/resources/moneropedia/denominations.html) is 0.000000001 XMR. In other words, it is 1/1000th of the smallest Monero unit, the piconero. In the tables in the `data ` directory, fee per byte is rounded down to the nearest integer nanonero. The complete operation is `floor( (tx_fee/tx_size_bytes)/1000 )`.
|
The tabulation of nonstandard fees will use "nanonero" as the basic unit. A [nanonero](https://web.getmonero.org/resources/moneropedia/denominations.html) is 0.000000001 XMR. In other words, it is 1/1000th of the smallest Monero unit, the piconero. In the tables in the `data` directory, fee per byte is rounded down to the nearest integer nanonero. The complete operation is `floor( (tx_fee/tx_size_bytes)/1000 )`.
|
||||||
|
|
||||||
Except when the dynamic block/fee algorithm is raising block size and fees, a `get_fee_estimate` RPC call to `monerod` will return these four values for nanoneros per byte: 20, 80, 320, 4000. These four levels are supposed to give transactions different priorities: "slow, normal, fast, fastest". However, since Monero blocks are usually not full, paying a higher fee usually does not mean that a transaction will be confirmed in a block any faster than a lower fee unless mining pool operators update their block templates more frequently when they receive transactions with higher fees. Any fees outside of these four values are considered nonstandard.
|
Except when the dynamic block/fee algorithm is raising block size and fees, a `get_fee_estimate` RPC call to `monerod` will return these four values for nanoneros per byte: 20, 80, 320, 4000. These four levels are supposed to give transactions different priorities: "slow, normal, fast, fastest". However, since Monero blocks are usually not full, paying a higher fee usually does not mean that a transaction will be confirmed in a block any faster than a lower fee unless mining pool operators update their block templates more frequently when they receive transactions with higher fees. Any fees outside of these four values are considered nonstandard.
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ According to my research, at least eight wallets did not upgrade in time for the
|
||||||
|
|
||||||
Wallets accessible to ordinary users are not the only wallet implementations creating transactions on the Monero blockchain. Services like centralized exchanges also create transactions. Downtime/uptime of withdrawal capability of these services can provide clues about which set of transactions with nonstandard fees they may be creating. moneroj.net has a record of Binance withdrawal suspensions: https://moneroj.net/withdrawals/
|
Wallets accessible to ordinary users are not the only wallet implementations creating transactions on the Monero blockchain. Services like centralized exchanges also create transactions. Downtime/uptime of withdrawal capability of these services can provide clues about which set of transactions with nonstandard fees they may be creating. moneroj.net has a record of Binance withdrawal suspensions: https://moneroj.net/withdrawals/
|
||||||
|
|
||||||
A researcher could create transactions with nonstandard wallets to provide evidence that a specific wallet is responsible for certain types of nonstandard fees. The fees of any transaction can be viewed by inputting its transaction ID into a block explorer like https://xmrchain.net/ . Note that` xmrchain.net`'s definition of kB is 1024 bytes, not 1000 bytes.
|
A researcher could create transactions with nonstandard wallets to provide evidence that a specific wallet is responsible for certain types of nonstandard fees. The fees of any transaction can be viewed by inputting its transaction ID into a block explorer like https://xmrchain.net/ . Note that `xmrchain.net`'s definition of kB is 1024 bytes, not 1000 bytes.
|
||||||
|
|
||||||
## Tabulated data
|
## Tabulated data
|
||||||
|
|
||||||
|
|
32
Monero-Nonstandard-Fees/code/Exodus-txs-release-fix-plot.R
Normal file
32
Monero-Nonstandard-Fees/code/Exodus-txs-release-fix-plot.R
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
# install.packages("ggplot2")
|
||||||
|
# install.packages("lubridate")
|
||||||
|
|
||||||
|
library(ggplot2)
|
||||||
|
|
||||||
|
fee.clusters <- read.csv("Monero-Nonstandard-Fees/data/fee-clusters-by-day.csv", stringsAsFactors = FALSE)
|
||||||
|
|
||||||
|
exodus <- data.frame(block_timestamp_date = fee.clusters$block_timestamp_date, exodus.txs = fee.clusters$X24_34_44_fee, stringsAsFactors = FALSE)
|
||||||
|
|
||||||
|
exodus$Week <- factor(c(rep(NA, 3), paste0("Week starting ",
|
||||||
|
rep(exodus$block_timestamp_date[-(1:3)][seq(1, nrow(exodus) - 3, by = 7)], each = 7))))
|
||||||
|
# Note: If data newer than 2023-10-17, then must change this
|
||||||
|
|
||||||
|
exodus$day.of.week <- lubridate::wday(as.Date(exodus$block_timestamp_date), label = TRUE, week_start = "Wednesday")
|
||||||
|
|
||||||
|
exodus <- exodus[(nrow(exodus) - 7*8 + 1):nrow(exodus), ]
|
||||||
|
|
||||||
|
|
||||||
|
png("Monero-Nonstandard-Fees/images/Exodus-txs-after-fix-release.png", width = 800, height = 800)
|
||||||
|
|
||||||
|
theme_set(theme_gray(base_size = 18))
|
||||||
|
|
||||||
|
ggplot(exodus, aes(x = day.of.week, y = exodus.txs, col = Week, group = Week)) +
|
||||||
|
geom_line() + geom_point() + expand_limits(y = 0) +
|
||||||
|
labs(title = "Number of Monero transactions with 0.00024060, 0.00034245, or\n0.00044430 XMR total fee (suspected Exodus Desktop wallet transactions)",
|
||||||
|
x = "Day of week (by UTC time)", y = "Number of transactions per day",
|
||||||
|
caption = "New version of Exodus Desktop with standard fee calculations was released 2023-10-10") +
|
||||||
|
annotate("text", y = 0, x = 6, label = "github.com/Rucknium", size = 6) +
|
||||||
|
theme(plot.caption = element_text(color = "red"))
|
||||||
|
|
||||||
|
dev.off()
|
File diff suppressed because it is too large
Load diff
|
@ -406,3 +406,26 @@
|
||||||
2023-09-22,17546,269,829,51,508,59,1.53311296021885,4.72472358372279,0.290664538926251,2.89524677989285,0.336258976404879
|
2023-09-22,17546,269,829,51,508,59,1.53311296021885,4.72472358372279,0.290664538926251,2.89524677989285,0.336258976404879
|
||||||
2023-09-23,15250,192,699,49,440,33,1.25901639344262,4.58360655737705,0.321311475409836,2.88524590163934,0.216393442622951
|
2023-09-23,15250,192,699,49,440,33,1.25901639344262,4.58360655737705,0.321311475409836,2.88524590163934,0.216393442622951
|
||||||
2023-09-24,15914,203,791,60,456,43,1.2756063843157,4.97046625612668,0.377026517531733,2.86540153324117,0.270202337564409
|
2023-09-24,15914,203,791,60,456,43,1.2756063843157,4.97046625612668,0.377026517531733,2.86540153324117,0.270202337564409
|
||||||
|
2023-09-25,20650,351,1077,73,623,75,1.69975786924939,5.21549636803874,0.353510895883777,3.01694915254237,0.36319612590799
|
||||||
|
2023-09-26,19975,327,1019,80,566,60,1.63704630788486,5.10137672090113,0.400500625782228,2.83354192740926,0.300375469336671
|
||||||
|
2023-09-27,19883,319,1079,80,607,62,1.60438565608812,5.42674646683096,0.402353769551878,3.05285922647488,0.311824171402706
|
||||||
|
2023-09-28,19190,308,1074,54,544,62,1.60500260552371,5.59666492965086,0.281396560708702,2.83480979676915,0.323084940072955
|
||||||
|
2023-09-29,18582,286,938,71,554,41,1.53912388332795,5.04789581315251,0.382090194812184,2.98137982994296,0.220643633623937
|
||||||
|
2023-09-30,18242,203,760,49,477,38,1.1128165771297,4.16620984541169,0.268610897927859,2.61484486350181,0.208310492270584
|
||||||
|
2023-10-01,19539,203,801,54,551,59,1.03894774553457,4.09949332105021,0.276370336250576,2.82000102359384,0.301960182199703
|
||||||
|
2023-10-02,23853,317,1154,51,701,67,1.32897329476376,4.8379658743135,0.213809583700163,2.93883368968264,0.280887100155117
|
||||||
|
2023-10-03,22384,354,1063,76,601,79,1.58148677626876,4.74892780557541,0.339528234453181,2.6849535382416,0.352930664760543
|
||||||
|
2023-10-04,22486,346,1046,52,646,71,1.53873521302144,4.65178333185093,0.231255003113048,2.87289869251979,0.315752023481277
|
||||||
|
2023-10-05,21813,293,1107,81,587,59,1.34323568514189,5.0749553018842,0.371338192820795,2.69105579241737,0.270480905881814
|
||||||
|
2023-10-06,20378,289,987,81,593,54,1.41819609382668,4.84345863185789,0.397487486505054,2.91000098145058,0.264991657670036
|
||||||
|
2023-10-07,17188,204,777,62,433,56,1.18687456364906,4.52059576448685,0.360716779148243,2.51919944147079,0.3258087037468
|
||||||
|
2023-10-08,18215,231,851,62,452,56,1.26818556135054,4.67197364809223,0.34037880867417,2.4814713148504,0.307438923963766
|
||||||
|
2023-10-09,22380,301,1111,69,579,59,1.3449508489723,4.96425379803396,0.308310991957105,2.58713136729222,0.263628239499553
|
||||||
|
2023-10-10,22555,334,1044,113,607,86,1.48082465085347,4.62868543560186,0.500997561516293,2.69119929062292,0.381290179561073
|
||||||
|
2023-10-11,20342,299,943,86,439,71,1.46986530331334,4.63572903352669,0.422770622357684,2.1580965490119,0.349031560318553
|
||||||
|
2023-10-12,19838,323,1022,92,347,59,1.62818832543603,5.15172900494001,0.463756427059179,1.74916826292973,0.297409013005343
|
||||||
|
2023-10-13,19076,284,1013,57,330,44,1.48878171524429,5.3103375969805,0.298804780876494,1.72992241560075,0.230656322080101
|
||||||
|
2023-10-14,17129,198,784,50,278,33,1.15593438029074,4.57703310175725,0.291902621285539,1.6229785743476,0.192655730048456
|
||||||
|
2023-10-15,17952,407,881,49,253,34,2.2671568627451,4.9075311942959,0.27295008912656,1.4093137254902,0.189393939393939
|
||||||
|
2023-10-16,22941,355,1182,60,301,65,1.54744780088052,5.15234732574866,0.261540473388257,1.31206137483109,0.283335512837278
|
||||||
|
2023-10-17,22056,327,1169,85,282,70,1.48258977149075,5.30014508523758,0.38538266231411,1.27856365614799,0.317373957199855
|
||||||
|
|
|
|
@ -58,3 +58,7 @@
|
||||||
"2023-36",128558,2136,6488,446,3805,376,1.66150686849515,5.04674932715195,0.346925123290655,2.9597535742622,0.29247499183248
|
"2023-36",128558,2136,6488,446,3805,376,1.66150686849515,5.04674932715195,0.346925123290655,2.9597535742622,0.29247499183248
|
||||||
"2023-37",129885,2106,6504,400,4005,391,1.62143434576741,5.00750664048966,0.307964738037495,3.08349693960042,0.301035531431651
|
"2023-37",129885,2106,6504,400,4005,391,1.62143434576741,5.00750664048966,0.307964738037495,3.08349693960042,0.301035531431651
|
||||||
"2023-38",127059,1868,6289,433,3641,378,1.47018314326415,4.94966905138558,0.340786563722365,2.86559787185481,0.297499586806129
|
"2023-38",127059,1868,6289,433,3641,378,1.47018314326415,4.94966905138558,0.340786563722365,2.86559787185481,0.297499586806129
|
||||||
|
"2023-39",136061,1997,6748,461,3922,397,1.46772403554288,4.95954020623103,0.338818618119814,2.88253062964406,0.291780892393853
|
||||||
|
"2023-40",146317,2034,6985,465,4013,442,1.39013238379682,4.77388136716855,0.317803126089245,2.74267515052933,0.302083831680529
|
||||||
|
"2023-41",139272,2146,6798,516,2833,386,1.54086966511574,4.88109598483543,0.370498018266414,2.03414900338905,0.277155494284565
|
||||||
|
"2023-42",44997,682,2351,145,583,135,1.51565659932884,5.22479276396204,0.322243705135898,1.29564193168433,0.300020001333422
|
||||||
|
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
Monero-Nonstandard-Fees/images/Exodus-txs-after-fix-release.png
Normal file
BIN
Monero-Nonstandard-Fees/images/Exodus-txs-after-fix-release.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 103 KiB |
Loading…
Reference in a new issue