Decred Split Ticket Matcher Service & Client
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
macOS version provided by @girino.
This changes the way utxo fetching is done when the UtxosFromDcrdata
config option is enabled. This option is mostly used when using the buyer with a SPV wallet.
Previously, individual requests were done for each split input which is both inneficient and was causing problems with certain users.
This version changes the fetching process so that a single batched call to dcrdata is performed and the results are parsed and verified.
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
This adds more logging lines regarding inputs into the split transaction, for both matcher and buyer, to try and ease detecting the error condition causing missing sessions.
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
This is a service-only release.
This solves the issue of blocking waiting list notifications when a new session is started (this was shown as a warning in logs).
It also rate-limits waiting list change notifications to clients to at most once every five seconds and improves some log lines for better tracking possible misuses of the service.
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
macOS version provided by @girino.
Note: This version bumps the protocol version to 4 so it is incompatible to previous versions (see below for explanations).
This version of the buyer and service adds a new return value to the FindMatches()
grpc call: session_token
.
This is an opaque blob of data that must be returned by the buyer to the service in the subsequent calls for building the split ticket session. If the values are different, then the service will drop the request from the buyer.
The main purpose of this change is to discourage attempts at disrupting the session by an impersonator guessing the session id of another participant.
While this couldn't allow stealing of funds, it could allow a service to mistakenly identify a buyer as disruptive and black list it.
Given that this is a new required field in all messages, the protocol version had to be bumped.
SPV client support has been added, with a few privacy caveats.
The main requirement for network connection on the buyer is to be able to fetch other participant's utxos, so that it can ensure the split transaction is being funded with the correct amount of coins and that the utxos haven't actually been spent (which would invalidate the whole session).
On SPV clients, given that the wallet does not actually have access to a full node daemon, we need a different way of fetching the utxos. For this version, spv clients will use dcrdata to fetch the outstanding utxo information.
While this shouldn't be a security issue, it is a privacy issue, since it is providing information to dcrdata operators of an upcoming split ticket being built with the given utxos. Users should evaluate the potential privacy implication of this when deciding whether to use the split service with spv wallets.
In the future, once header commitments include a utxo set commitment and we can check for inclusion via wallet grpc commands, this is likely to be dropped.
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
Mac build provided by @girino.
%LOCALAPPDATA%
in windows (logs were previously being saved in %USERPROFILE%
)MaxSessionDuration
as a time string (with a suffix for defining the time units) and change default to 30s
(vs old 30
)splitticket
packagevalueIn
for ticket and split transactions (vs using the old fixed -1
value)This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
Mac version provided by @girino.
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
Provided by @girino.
--version
command line argument to buyer and serviceMaxWaitTime
to be zero in buyer, allowing a client to wait forever in
queueThis is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
Mac build provided by @girino. Read the included readme file.
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.
This is a beta release of the split ticket buyer service and client. Please read the instructions for joining the beta.