Tidy docs

This commit is contained in:
jholdstock 2020-05-29 12:56:30 +01:00 committed by David Hill
parent 2956285e61
commit 85a806fb3a
3 changed files with 15 additions and 55 deletions

View File

@ -1,48 +0,0 @@
# Announcement
## Advantages vs dcrstakepool
### For VSP Administrators
- An instance of bbolt db on the front-end server is used as the single source
of truth:
- bbolt does not have the sys admin overhead associated with maintaining a
MySQL database. The database will be automatically created and maintained
by vspd.
- The bbolt database is only accessed by vspd. There is no need to open
additional ports on your front-end server for the voting wallets to access
the database.
- Voting wallet servers require only dcrwallet and dcrd. There is no longer a
VSP binary (ie. stakepoold) running on voting servers.
- Voting servers no longer need dcrd to be running with `--txindex`.
- No need to use the same wallet seed on each voting wallet.
- A new fee address and amount are requested for each ticket:
- Fee addresses are never reused.
- Fee amount can be changed freely.
- No emails or personal information are held. No need to worry about GDPR et al.
### For VSP Users
- No redeem script to back up.
- No registration required - no email, no password, no CAPTCHA.
- Voting preferences can be set for each individual ticket.
- No address reuse.
- VSP fees are paid independently of the ticket purchase, rather than being
included in the ticket:
- Multiple VSPs can be used for a single ticket.
- Fees can be paid using funds from a mixed account.
- VSP users can purchase tickets in the same anonymity set at solo stakers.
### For the Decred Ecosystem
- Solo tickets and VSP tickets are indistinguishable on-chain.
- Clients and servers can hold eachother accountable for actions. This enables
users to prove if a VSP is misbehaving, and VSPs to defend themselves if they
are falsely accused.
## Disadvantages
- Front-end is more important than before.
- Front-end requires dcrd with `--txindex`.
- Failure cases
- fee tx doesnt broadcast

View File

@ -5,7 +5,7 @@
- Success responses use HTTP status 200 and a JSON encoded body.
- Error responses use either HTTP status 500 or 400, and a JSON encoded error
in the body. For example `{"error":"Description"}`.
in the body, e.g. `{"error":"Description"}`.
- Requests which reference specific tickets need to be properly signed as
described in [two-way-accountability.md](./two-way-accountability.md).
@ -18,7 +18,7 @@
### Get VSP info
Clients should retrieve the VSP's public key so they can check the signature on
future API responses. A VSP should never change their public key so it can be
future API responses. A VSP should never change their public key, so it can be
requested once and cached indefinitely. `vspclosed` indicates that the VSP is
not currently accepting new tickets. Calling `/feeaddress` when a VSP is closed
will result in an error.
@ -44,8 +44,11 @@ will result in an error.
**Registering a ticket is a two step process. The VSP will not add a ticket to
its voting wallets unless both of these calls have succeeded.**
#### Step One
Request fee amount and address for a ticket. The fee amount is only valid until
the expiration time has passed.
the expiration time has passed. The fee amount is an absolute value measured in
DCR.
- `POST /feeaddress`
@ -65,12 +68,14 @@ the expiration time has passed.
{
"timestamp":1590509066,
"feeaddress":"Tsfkn6k9AoYgVZRV6ZzcgmuVSgCdJQt9JY2",
"fee":0.001,
"feeamount":0.001,
"expiration":1590563759,
"request": {"<Copy of request body>"}
}
```
#### Step Two
Provide the voting key for the ticket, voting preference, and a signed
transaction which pays the fee to the specified address. If the fee has expired,
this call will return an error and the client will need to request a new fee by
@ -117,10 +122,9 @@ fields:
- `feetxbroadcast` is true when the VSP has broadcast the fee transaction.
- `feeconfirmed` is true when the fee transaction has 6 confirmations.
`feetxhash` will only be populated if `feetxbroadcast` is true.
The VSP will only add tickets to the voting wallets when all four of these
conditions are met.
conditions are met. `feetxhash` will only be populated if `feetxbroadcast` is
true.
- `GET /ticketstatus`

View File

@ -12,4 +12,8 @@
### Server does not vote ticket
TODO
### Client denies changing their voting preferences
TODO