No Branch/Tag Specified
arm
asyncnotedecryption
danger
dev
dev-aarch64
dev-mac
dev-old-randomx
divzaddrs
dragonx
duke
freebsd
getfilterednotes
hip39
hushutils
insync
jahway603
master
mvstuff
onryo
p2p_privacy
ramhash
relaytx
rx-largepages
setbestchain
warmup
witness_cache
wolfssl
wolfssl_win
z_createrawtransaction
z_importwallet
z_signmessage
v0.11.2.z0
v0.11.2.z1
v0.11.2.z2
v0.11.2.z3
v0.11.2.z4
v0.11.2.z5
v0.11.2.z6
v0.11.2.z7
v0.11.2.z8
v0.11.2.z9
v1.0.0
v1.0.0-beta1
v1.0.0-beta2
v1.0.0-rc1
v1.0.0-rc2
v1.0.0-rc3
v1.0.0-rc4
v1.0.1
v1.0.10
v1.0.10-1
v1.0.11
v1.0.11-rc1
v1.0.12
v1.0.12-rc1
v1.0.13
v1.0.13-rc1
v1.0.13-rc2
v1.0.14
v1.0.14-rc1
v1.0.15
v1.0.15-rc1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.0.7-1
v1.0.8
v1.0.8-1
v1.0.9
v1.1.0
v1.1.0-rc1
v1.1.1
v1.1.1-rc1
v1.1.1-rc2
v1.1.2
v1.1.2-rc1
v2.0.0
v2.0.0-rc1
v2.0.1
v3.0.0
v3.1.0
v3.1.1
v3.10.0
v3.10.1
v3.10.2
v3.2.0
v3.2.1
v3.2.1-alpha
v3.2.1-beta
v3.2.2
v3.2.3
v3.3.0
v3.3.1
v3.3.2
v3.4.0
v3.4.1
v3.5.0
v3.5.1
v3.5.2
v3.6.0
v3.6.1
v3.6.2
v3.6.3
v3.7.0
v3.7.1
v3.8.0
v3.9.0
v3.9.1
v3.9.2
v3.9.3
v3.9.4
Labels
bounty up to 500 HUSH 2001-5000 bounty
bounty between 2001 and 5000 HUSH 501-2000 bounty
bounty between 501 and 2000 HUSH arm
something doesn't work on arm beginners
for new developers bug
may or may not be a bug build
problems building documentation
not enough information feature
new feature high priority
high priority i2p
related to i2p low priority
low priority medium priority
medium priority question
something is not clear release
release label or issue related to it testing
related to testing tor
related to tor wontfix
this won't be fixed
Apply labels
Clear labels
0-500 bounty
bounty up to 500 HUSH 2001-5000 bounty
bounty between 2001 and 5000 HUSH 501-2000 bounty
bounty between 501 and 2000 HUSH arm
something doesn't work on arm beginners
for new developers bug
may or may not be a bug build
problems building documentation
not enough information feature
new feature high priority
high priority i2p
related to i2p low priority
low priority medium priority
medium priority question
something is not clear release
release label or issue related to it testing
related to testing tor
related to tor wontfix
this won't be fixed
No Label
0-500 bounty
2001-5000 bounty
501-2000 bounty
arm
beginners
bug
build
documentation
feature
high priority
i2p
low priority
medium priority
question
release
testing
tor
wontfix
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
This will be 2 new RPCs which calculate the delta (difference) of the anonset at a certain txid or block height. A delta > 0 means the anonset increased, a delta < 0 means the anonset decreased and a delta=0 means the anonset stayed the same.
The anonset delta of a block is the sum of all anonset deltas for each transaction in that block.
This will make it much easier to study how the anonset changes over ranges of block heights or how a certain tx changed the anonset. It will also allow gathering/studying anonset stats without having a full
zindex
. If you know from an external source (such as an explorer) that the anonset is X at height Y, then you can doZ = z_anonsetblockdelta(X+1)
and then you will know that the anonset at heightX+1
isX+Z
@onryo it seems to work, it's on the
danger
branch, give it some testing. It does not requirezindex
to be enabled.@onryo I could relatively easily add the funcationality to
z_anonsetblockdelta
to do a range of block heights, such asz_anonsetblockdelta 100 200
, is that something you would want or use? In theory, you could doz_anonsetblockdelta 1 X
where X is the latest block height and calculate the full anonset value without havingzindex
enabled.@onryo other ideas I have that can use this code:
With these 2 RPCs, now our explorers can render how each block and tx changed the anonset. Something like "this tx added/subtracted X from the anonset" and "this block added/subtracted Y from the anonset"
I just pushed code to calculate anonset of block ranges, it seems to work:
3 minutes to calculate the anonset of all time, not too bad, but not something you want to call for every block. What it's most useful for is looking at slices of anonset history.
12.6 seconds to see that we only had an anonset of 602 in our first 100k blocks.
14.3 seconds to see that we added ~48K to our anonset in block heights 800K to 900K. The reason this block range is slower is because it must look at every tx in every block, so the more tx's that are in a range, the slower it will be.
16.3 seconds to see we added ~122K(!) to our anonset in the last ~70K blocks. Makes sense that it is slower because our chain usage has gone up and we have more tx's in the last 70K blocks than previous block ranges.
these are done and seem to be working fine