Proto commits in perlin-network/wavelet

These 31 commits are when the Protocol Buffers files have changed:

Commit:1fddc0e
Author:Hasyimi Bahrudin
Committer:Kenta Iwasaki

Add gossiping to share incoming transactions. (#429) * wavelet, debounce: reintroduce gossiping * gossip: gossip to K closest peers * remove stream, remove duplicated debounce package, cleanup

The documentation is generated from this commit.

Commit:1cd4b67
Author:Kenta Iwasaki
Committer:GitHub

Keep track of finalized transaction IDs in ledger state to prevent double spending upon state syncing, improve overall security of state syncing, cleanup state syncing code, and speed up transaction syncing. (#419) * ledger: restructure sync state method and optimize concurrency * protocol,ledger: add loading all blocks from latest within pruning limit after state syncing * ledger,transactions: add separate index to finalized transactions * ledger,rpc: reuse query grpc messages for getting blocks * small optimisation on which block download from + fix rest of build tags * ledger, collapse, db: save ids of finalized transactions to database after applying account updates to ledger state, load finalized transactions upon init of ledger, and re-instantiate finalized transactions upon finalizing state syncing ledger, sync, testutil: move syncing-related code to dedicated SyncManager module, and update test code ledger: speed up rate in which transaction syncing occurs from 3 seconds to 1 second for faster finality api, ledger: remove sync status of node temporarily (we should cleanup node lifecycle later) avl, genesis, db: allow IteratePrefix to return early internal/backoff, sync: fork pkg for exponential backoff for syncing backoffs block, test/block: rename Count to LatestHeight * sync: do not sync with outdated peers * rpc: remove GetBlock rpc call * protocol: remove GetBlock rpc call * log, log/test: add filter log module tx, remove log by key api/test: update test * ledger: fix merge with master * collapse, db, ledger, sync: address pr comments * ledger, sync: replace OnOutOfSync with OnStateReconciled, and only kickstart consensus goroutines when sync probing has finished * ledger: ensure consensus is started only once after sync check

Commit:ec23c17
Author:Andrii Ursulenko

ledger,rpc: reuse query grpc messages for getting blocks

Commit:8b8f949
Author:Andrii Ursulenko

protocol,ledger: add loading all blocks from latest within pruning limit after state syncing

Commit:b4a57bc
Author:Roy Keene
Committer:GitHub

Merge in Himitsu and Related Changes (#344)

Commit:342b8f3
Author:Hasyimi Bahrudin
Committer:Kenta Iwasaki

Send list of tx id instead of bloom filter for pulling transactions (#283) * wavelet: send list of tx id instead of bloom filter * mempool: disable usage of bloom filter * protocol: use map struct * ledger: minor improvement * wavelet: rename transactions to transaction_ids

Commit:3b3f46c
Author:Kenta Iwasaki

metrics, tx/json, ledger, protocol, collapse, conf, cmd/wavelet: replace further traces of rounds to blocks, and remove further traces of nops

Commit:5650cec
Author:Kenta Iwasaki

ledger, protocol, rpc: rename DownloadMissingTx to PullTransactions

Commit:699671f
Author:Ahmad Muzakkir

protocol, rpc: update CheckOutOfSync protocol

Commit:82ae4ab
Author:Hasyimi Bahrudin
Committer:GitHub

Implement pulling transactions with bloom filter (#278) * wavelet: remove DownloadTx RPC and SyncTransactions method * wavelet, conf: use bloom filter for detecting missing tx * ledger: add existing txs in graph to bloom filter * ledger: always add tx to bloom filter * ledger: add delay between pulls

Commit:e78a1ec
Author:Ahmad Muzakkir
Committer:GitHub

[WIP] Remove transaction creator and graph. (#277) * all: remove transaction creator. replace it with transaction sender * all: rename Sender Signature to Signature * ledger, collapse, contract, tx: WIP add mempool and blocks. update collapseTransactions * ledger, genesis, db, block: replace rounds with blocks * block: make block implements snowball.Identifiable * all: implement query, modify snowball, update protocol.

Commit:07e1ffe
Author:Hasyimi Bahrudin
Committer:Kenta Iwasaki

Remove gossip mechanism. (#276) * wavelet: remove gossip mechanism * wavelet: fix dependencies

Commit:61649f7
Author:Andrii Ursulenko
Committer:Kenta Iwasaki

State and transaction syncing - fixes and flow change. (#134) * snowball: make snowball generic isntead of working only with rounds, fix code using it and related tests * a lot: change how syncing works - decision on out of sync now made on each peer asked, partial changes from another pr * graph: add index to track which transaction are incomplete by which missing transaction to delete those on prune * graph,ledger: add transaction completion for pruning + test, cleanup tests * ledger,graph: fix depth of missing parent, fix mark as missing * a lot: fix completing and removing incomplete transaction upon root update + test + bunch of other stuff * ledger: add more comprehensive out of sync status, do not add transaction originating on the node if node is out of sync * vote: add tests * collapse,ledger: better message to errors printing, reduce timeout in case of no missing txs * graph, ledger, protocol, rpc, const: add syncing of transactions along pulling missing, sync transactions only after state was synced and before consensus achieved (#148) * vote,testutil,protocol,ledger: make tests deterministic, brash up some stuff

Commit:833372a
Author:Kenta Iwasaki

all: adopt mit license

Commit:dfbe1b7
Author:Kenta Iwasaki

ledger, rpc: finish barebones state syncing with some amounts of validation, and update SyncInfo to return the entire latest rounds content ledger: fix CollapseTransactions() erroneously marking transactions as missing due to depth checks even if we do not require syncing them graph: add func to update the root of the current graph, which forcefully adds a transaction to the graph graph: mark a transaction as missing only if it exceeds root depth

Commit:bc627c8
Author:Kenta Iwasaki

debounce: increase buffer len to recommended grpc per-message size protocol, rpc: implement bidirectional stream and chunking for syncing and remove redundant protos sys: add sync chunk size option makefile: fix makefile

Commit:5382dfa
Author:Kenta Iwasaki

all: final wavelet rewrite wip

Commit:982cfda
Author:Kenta Iwasaki

all: initial work on wavelet rewrite tx, buf, graph: implement new transaction format net, noise: integrate new noise version

This commit does not contain any .proto files.

Commit:e4a549d
Author:Ahmad Muzakkir
Committer:Kenta Iwasaki

all: change ID types from string to []byte (#55) * ledger, rpc, state, wavelet, events, api, node, security, service: change ID types from string to []byte. * security: fixed validation constraints now that IDs are not encoded as hex strings service: report internal error when service encounters error * all: change ID types from string to []byte * processor/transfer, security, contract, state, cmd/wavelet, api: removed the rest of string to []byte conversions and made tx IDs logged as hex contract: do not display warning if contract does not have on_money_received func contract: fix debug logging for smart contracts

Commit:50ad578
Author:Kenta Iwasaki

node, sync, params: cleanup syncer and add consts to params ledger, iblt: remove use of iblt for syncing sync: fix err for missing tx

Commit:97fe03c
Author:losfair

messages: Children query & push hint

Commit:c1ceafe
Author:losfair

node/messages: Update messages for sync.

Commit:5b8eeb2
Author:Kenta Iwasaki

iblt: use alternative iblt package sync: finished syncing

Commit:a7927f1
Author:Kenta Iwasaki

node, sync: initial work on supporting syncing missing tx from peers using IBLTs

Commit:9f08c68
Author:Kenta Iwasaki

state: store transaction ids in iblt

Commit:4e0246c
Author:Kenta Iwasaki

node add support for responding to query requests messages: add QueryResponse

Commit:07348ca
Author:Kenta Iwasaki

cli: add cli support

Commit:21613c8
Author:Kenta Iwasaki

state, delta: make deltas serializable

Commit:0eddd9a
Author:Kenta Iwasaki

state: add WebAssembly smart contracts and transaction processor support delta: keep account as byte array service: add cloud & money transaction processors

Commit:1bed304
Author:Kenta Iwasaki

ledger: add index for accepted tx util: add writeString() method for zero-alloc conversion of []byte to stirng state: initial work for applying tx to ledger state state: add recurring loop in separate goroutine for applying ledger updates delta: keep track of old value

Commit:1beb1f7
Author:Kenta Iwasaki

iavl: add iavl+ tree package state: add persisted accounts