dashhive / DashJoin.js

Dash CoinJoin JavaScript (Browser & Node) SDK
https://dashhive.github.io/DashJoin.js/
MIT License
2 stars 0 forks source link

doc: What do dsa, dssu, dsq, dsi, dsf, dss, dsc, inv, and dstx stand for? #10

Closed coolaj86 closed 4 months ago

coolaj86 commented 6 months ago

The ds prefix of each stands for "Dark Send", from the good ol days. If it were renamed, these would all be ps* (Private Send) or cj* (CoinJoin).

See https://docs.dash.org/projects/core/en/stable/docs/guide/dash-features-coinjoin.html#coinjoin-processing

Index + Direction Message Meaning
1 ➡️ version Begin MasterNode Handshake
1 ↩️ version
sendaddr2
-
1 ➡️ verack -
1 ↩️ verack
mnauth
Version is acceptable + MN Proof
* ↩️ sendheaders
sendcmpct
senddsq
Negotiate desired messages & sub-protocols
* ➡️ senddsq REQUIRED Opt-in to receiving dsq messages
* ↩️ ping Begin ping/pong keepalive
* ↩️ inv Inventory (transactions, blocks) either incoming messages, or response to getblocks or mempool
2 ➡️ dsa DarkSend (Please) Allow
2 ↩️ dssu
dsq
DarkSend (Accpeted into) Queue
Note: you won't get the dsq reply to your dsa unless you've sent senddsq
3 ➡️ dsi DarkSend 1 (Ready Bit set to True)
4 ↩️ dssu
dsf
dssu
DarkSend Final Draft (Unsigned)
5 ➡️ dss DarkSend Signed Transaction (one from each participant)
6 ↩️ dsc
inv
DarkSend Complete
dstx inventory
7 🌎 dstx DarkSend Transaction (the randomly selected tx is broadcast)
- getdata Query memory pool for current dstx
* ↩️ dssu + * DarkSend Status Update

See also: