advertise cf support with a service flag when enabled
bump protocol version for the new service flag and new messages
support new cf messages in the serverPeer: getcfheaders, getcfilter, getcftypes, cfheaders, cfilter, cftypes
add json-rpc support for cfilters so wallet can continue to save cfilters to the database when not running in spv mode
add json-rpc client support for the new RPCs
dcrwallet
Basic header verification
Check reported difficulty in header is valid
Check proof of work against the header's reported difficulty
Validate sdiff when DCP0001 deployment is active
Validate merkle roots of fetched blocks
Validate cfilters of matched and fetched blocks
Validate that fetched full blocks' transaction merkle trees match the merkle roots in the header
Save compact filters to DB
filter headers will not be saved nor checked at this time, but will need to be handled later for multipeer
all filters will be saved so that the client can more quickly perform an "exists address" check, and then only pull blocks which may contain the address
database upgrade will be a two step process
upgrade schema to add fields for the filters
on first start after upgrade, download all missing cfilters
this is extremely slow currently and we need a batched request a la getheaders
Fetch and save cfilters even when running with the JSON-RPC backend
implement the wallet.NetworkBackend interface using the wire protocol
GetHeaders
LoadTxFilter
Rescan
AddressesUsed (removing, address usage scanning will get new algorithm)
GetBlock (new addition to the interface)
GetBlocks (also new)
PublishTransaction
StakeDifficulty (when DCP0001 is active, sdiff will be calculated by the wallet. this is a fallback when not active, and is only queryable with dcrd RPC)
GetBlockHash (being removed when the dcrd getheaders bug is fixed)
Implement new DiscoverActiveAddresses algorithm that scans saved cfilters and fetches full blocks
new implementation is significantly slower on a lightly used testnet wallet. many places to apply optimization still. fixed
Implement account restores during DiscoverActiveAddresses
Add DNS peer discovery
Add P2P peer discovery
Implement multipeer syncing
Disconnect from peers behind our main chain
Disconnect peers that aren't announcing new blocks announced by other peers within some time limit ignoring for now, dcrd has same issue currently
Remove reorg handling as it is currently performed through dcrd notifications and replace with determining locally which is the best fork
Implement sidechain and orphan block management
Choose best sidechain based on total work, not height
Listen for transaction invs and save unmined transactions which are relevant to the wallet
May need some protection and additional data in the unmined transaction records in the database to prevent announcing invalid transactions to other peers
Write a new ticketbuyer that doesn't rely on dcrd RPC.
Disable certain functionality when operating in SPV mode
Voting (winning tickets are not in the header nor is there anything anchoring them with a merkleroot)
Revoking missed tickets before their expiry period (unknown whether the ticket is live or missed)
The text was updated successfully, but these errors were encountered:
dcrd
getcfheaders
,getcfilter
,getcftypes
,cfheaders
,cfilter
,cftypes
dcrwallet
GetHeaders
LoadTxFilter
Rescan
AddressesUsed
(removing, address usage scanning will get new algorithm)GetBlock
(new addition to the interface)GetBlocks
(also new)PublishTransaction
StakeDifficulty
(when DCP0001 is active, sdiff will be calculated by the wallet. this is a fallback when not active, and is only queryable with dcrd RPC)GetBlockHash
(being removed when the dcrd getheaders bug is fixed)new implementation is significantly slower on a lightly used testnet wallet. many places to apply optimization still.fixedDisconnect peers that aren't announcing new blocks announced by other peers within some time limitignoring for now, dcrd has same issue currentlyThe text was updated successfully, but these errors were encountered: