feat(dot/network): request block justifications when near head#1499
feat(dot/network): request block justifications when near head#1499noot merged 15 commits intodevelopmentfrom
Conversation
Codecov Report
@@ Coverage Diff @@
## development #1499 +/- ##
===============================================
+ Coverage 58.66% 58.70% +0.03%
===============================================
Files 152 153 +1
Lines 15105 15182 +77
===============================================
+ Hits 8862 8912 +50
- Misses 4699 4716 +17
- Partials 1544 1554 +10
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
dot/network/sync_justification.go
Outdated
| if curr.Number.Cmp(prev.Number) > 0 { | ||
| prev = curr | ||
| continue | ||
| } | ||
|
|
||
| // no new blocks have been finalized, request block justifications from peers | ||
| head, err := q.s.blockState.BestBlockNumber() | ||
| if err != nil { | ||
| prev = curr | ||
| continue | ||
| } | ||
|
|
||
| prev = curr |
There was a problem hiding this comment.
if prev = curr is set for all three cases we can set it right after line 44.
Also, I see the same code in syncAtHead().
There was a problem hiding this comment.
line 46 compares prev and curr, so I can't update it before then. I will simpify the other case though
|
|
||
| q.requestCh <- &syncRequest{ | ||
| req: req, | ||
| to: "", |
There was a problem hiding this comment.
Is this field needed? I see it's always empty.
There was a problem hiding this comment.
yes, it's used in handleBlockAnnounce and handleBlockAnnounceHandshake
noot: feat(dot/network): request block justifications when near head (#1499)
|
🎉 This PR is included in version 0.4.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 0.4.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
1 similar comment
|
🎉 This PR is included in version 0.4.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
* feat: cmd: implement import-runtime subcommand (#1483) * fix(lib/crypto/ed25519): update ed25519 to use go-schnorrkel bip39 derivation (#1488) * fix(state) : Update StorageState to load storage from database. (#1486) * fix(dot/state): fix usage of trie.Snapshot (#1489) * fix(dot/state,dot/network): improve memory usage when syncing (#1491) * fix(dot/network): update notificationsProtocol handshakeData to sync.Map (#1492) * remove log (#1493) * feat(dot/network): request block justifications when near head (#1499) * chore(cmd): rename genesis-raw flag and files to genesis, allow raw and human-readable genesis to be passed to it (#1500) * refactor: docs: Docs Overhaul (#1438) * Beginning new docs * Theming set up * General layouts n links sorted * Cleaned up * Updated Commandline * Cleaned a bit * Minor cleaning * Removed todo * Config page * Connect to Polkadotjs * Fixed dev resources * New categories sorted * Updated permalink * Corrected contributor doc * Removed unused partials * Tidying * Removed offical nodes page * Amended with feed back * Resolved a majority of feedback * Ammeded workflows * Feedback * Added diagram * Recent feedback * Test package content * Removed comment * Debugging page * Block production expansion * Typos * Host spec link Co-authored-by: noot <[email protected]> * chore(codeowners): update codeowners file (#1505) * fix: cmd/gossamer: Generate random name if --name flag not set (#1506) * generate random name if --name flag not set * update tests with name flag to handle random names * update tests that reference name cfg * chore(release): Automated release using semantic-release. (#1503) * feat: dot/telemetry: Implement basic telemetry connection (#1497) * implement telemetry connection server * add telemetry for import block * setup telemetry to use node name from Global config * init telemetry connections based on genesis.json values * fix error message formatting * add tests for telemetry * implement no-telemetry cli flag * fix typos * cleanup error check * create TelemetryEndpoint struct * created connection data struct to hold connection data * make TelemetryEndpoints a pointer reference * add tests for interfaceToTelemetryEndpoint * update test to fix random name * fix: fix edit link (#1507) * chore(readme): Fix broken image link (#1509) Co-authored-by: Arijit Das <[email protected]> * fix(dot/network): fix justification request at head logic (#1510) * feat(dot/network): implement persistent peers functionality (#1512) * chore(release): Update name in package.json. (#1514) * Update package.json. * Disable package publish to npm. * Add support to skip a release. * feat(dot/network): Add cache for network message. (#1511) * Add cache for network message. * chore(release): Fix Deepsource error on development branch. (#1516) * Fix Deepsource error. * Fix lint issues. Co-authored-by: noot <[email protected]> Co-authored-by: Ryan Noble <[email protected]> Co-authored-by: Dustin Brickwood <[email protected]> Co-authored-by: Edward Mack <[email protected]>
* feat: cmd: implement import-runtime subcommand (#1483) * fix(lib/crypto/ed25519): update ed25519 to use go-schnorrkel bip39 derivation (#1488) * fix(state) : Update StorageState to load storage from database. (#1486) * fix(dot/state): fix usage of trie.Snapshot (#1489) * fix(dot/state,dot/network): improve memory usage when syncing (#1491) * fix(dot/network): update notificationsProtocol handshakeData to sync.Map (#1492) * remove log (#1493) * feat(dot/network): request block justifications when near head (#1499) * chore(cmd): rename genesis-raw flag and files to genesis, allow raw and human-readable genesis to be passed to it (#1500) * refactor: docs: Docs Overhaul (#1438) * Beginning new docs * Theming set up * General layouts n links sorted * Cleaned up * Updated Commandline * Cleaned a bit * Minor cleaning * Removed todo * Config page * Connect to Polkadotjs * Fixed dev resources * New categories sorted * Updated permalink * Corrected contributor doc * Removed unused partials * Tidying * Removed offical nodes page * Amended with feed back * Resolved a majority of feedback * Ammeded workflows * Feedback * Added diagram * Recent feedback * Test package content * Removed comment * Debugging page * Block production expansion * Typos * Host spec link Co-authored-by: noot <[email protected]> * chore(codeowners): update codeowners file (#1505) * fix: cmd/gossamer: Generate random name if --name flag not set (#1506) * generate random name if --name flag not set * update tests with name flag to handle random names * update tests that reference name cfg * chore(release): Automated release using semantic-release. (#1503) * feat: dot/telemetry: Implement basic telemetry connection (#1497) * implement telemetry connection server * add telemetry for import block * setup telemetry to use node name from Global config * init telemetry connections based on genesis.json values * fix error message formatting * add tests for telemetry * implement no-telemetry cli flag * fix typos * cleanup error check * create TelemetryEndpoint struct * created connection data struct to hold connection data * make TelemetryEndpoints a pointer reference * add tests for interfaceToTelemetryEndpoint * update test to fix random name * fix: fix edit link (#1507) * chore(readme): Fix broken image link (#1509) Co-authored-by: Arijit Das <[email protected]> * fix(dot/network): fix justification request at head logic (#1510) * feat(dot/network): implement persistent peers functionality (#1512) * chore(release): Update name in package.json. (#1514) * Update package.json. * Disable package publish to npm. * Add support to skip a release. * feat(dot/network): Add cache for network message. (#1511) * Add cache for network message. * chore(release): Fix Deepsource error on development branch. (#1516) * Fix Deepsource error. * Fix lint issues. * chore(codeowners): update codeowners file (#1523) * fix(dot/network): fix receiving notifications messages from substrate peers (#1517) * chore(.github): remove development from release flow (#1526) * chore(dot/network, lib/grandpa): update network.ConsensusMessage, add grandpa.NeighbourMessage and handle accordingly (#1519) * feat: Add properties and chainId on build-spec command (#1520) * feat(dot/network, lib/grandpa): request justification on receiving NeighbourMessage, verify justification on receipt (#1529) * fix (dot/rpc, dot/state): state_subscribeStorage to only notify for value changes (#1460) * move websocket messages and listeners into own files * fix notifyStorageSubscriptions to only notify for changes * address PR comments * add to websocket tests * repair append, cleanup filter declareation * fix anti-pattern in log message * create notifyStorageSubscription for individual sub notify * add websocket listeners unit tests * cleanup merge conflicts * lint * add sleep timer * refactor websocket files * lint * a locks to fix data race * implement observer design pattern * fix race conditions * add tests * add tests * add tests * add tests * add tests * add tests * add troubleshooting stuff for testing transactions * save commit * address PR comments * lint * remove unused printf and comments * fix test * update tests * add return from error * fix(lib/babe): fix BABE state storing after building block (#1536) * chore(lib/grandpa): update grandpa message types to match substrate (#1534) * chore(linter): change locale to UK from US (#1533) * chore(linter): change locale to UK from US * fix(babe): Fix extrinsic format in block. (#1530) * chore:remove codecov token (#1542) * chore(dot/core, dot/state, lib/grandpa): implement GrandpaState, use in DigestHandler and grandpa.Service (#1540) * chore(dot/state): create BaseState for accessing non-prefixed db keys (#1546) * feat(lib/grandpa): fully verify justifications using GrandpaState (#1544) * chore(lib/common) implement MustHexToBigInt (#1547) * implement MustHexToBigInt * add tests for panics * clean-up string checking * fix(dot/network): Fix notification handshake and reuse stream. (#1545) * fix: persist node name (#1543) * fix(dot/network): split stored streams and handshakeData into inbound and outbound (#1553) * chore(docs): fix image paths for integrate docs page (#1552) * fix: update go-schnorrkel version (#1557) * chore: close db if node initialized check fails (#1551) * feat(dot/network): add propagate return bool to messageHandler func type to determine whether to propagate message or not (#1555) * feat (dot/telemetry): implement telemetry system.interval message (#1528) * implement network data sytem interval telemetry message * add lock to telemetry struct to fix concurrent websocket writes * implement block data system.interval telemetry message * address comments * fix race condition * fix lint * update tests * refactor tests * use interface{} for channel, add recover * rename channel doneNetworkTelemetry to closeCh * fix check for closed channel * fix error checking * feat(lib/grandpa): send NeighbourMessage to peers (#1558) * chore: merge main into development before release (#1559) * chore: fix merge issues before release * fix(release): Trigger release when pushed to main branch. (#1566) * feat: add --chain dev option (#1561) * fix(dot/sync): fix creating block response, fixes node sync between gossamer nodes (#1572) * fix(lib/babe): add pre-runtime digest before calling initialize_block (#1581) * fix(polkadot.js) fix -infinity in keys error by adding genesis field (#1573) * chore: add polkadotjs tests to ci (#1567) * chore: add polkadotjs tests to ci * Update .github/workflows/tests.yml Co-authored-by: Edward Mack <[email protected]> * chore: update dockerfile to install yarn and cd into js test dir and install dependencies * chore:updated dockerfile to run polkadotjs tests * chore: updated deps to include js tests * chore: removed unneeded command in test wrkflow * add rpc module to gossamer start-up * fix linter rants Co-authored-by: Edward Mack <[email protected]> Co-authored-by: noot <[email protected]> * fix(lib/babe): call AddBlock in BABE synchronously (#1585) * chore(docs): update README and installation doc to include dev node (#1583) * fix(docs) rename hosts package to dot packages (#1582) * chore: improved ci caching for mod and build. Also add codecov id-ci-fail success attribute (#1590) Co-authored-by: Arijit Das <[email protected]> * chore: fix block production path and add article links (#1593) * feat(rpc/subscription): implement state_unsubscribeStorage (#1574) * implement state_unsubscribeStorage * add value checks, add tests * handle string parameter, add tests, use const for error messages * parse to uint * update type * update variable names (based on comments) Co-authored-by: Arijit Das <[email protected]> * fix: pending bubble hidden after block included (#1592) * fix: pending bubble hidden after block included * chore: fix typo * chore: change FindExtrinsic to HasExtrinsic Co-authored-by: noot <[email protected]> * fix(dot/network) track sent/received requests by hash (#1575) * fix(dot/network): add map to track requests by hash * chore: remove store request by hash when sync fails Co-authored-by: noot <[email protected]> * feat(cmd): implement offline pruning of state trie (#1564) * fix(dot/network): fix discovery between gossamer nodes (#1594) * fix(utils): create a specific folder for database (#1598) * feat: create a specific folder for database * chore: remove unused const * fix: add default database dir on NodeInitialized function * fix: change default database dir to db and fix typo * chore(review): Add Eclesio to code owners (#1601) * chore(dot/network): use sync.Pool for network message buffers (#1600) * chore(lib/babe): create BlockBuilder type (#1602) * fix: update deprecated package (#1603) * fix(lib/blocktree): fix setting leaves after blocktree pruning (#1605) * fix(dot/telemetry): refactor telemetry to reduce CPU usage (#1597) * chore(dot/network): improve CPU usage again; no more mallocs (#1608) * fix(dot/core): Fix handle transaction message test. (#1607) * fix(dot/core): Fix handle transaction message test. * Remove hardcoded extrinsic value. * Add subkey for Macos. * Add subkey in the coverage report. * chore(dot/network): Add test for leb128 to uint64 conversion. (#1614) * Add test for leb128 to uint86 conversion. * feat(dot/network): implement streamManager to cleanup not recently used streams (#1611) * fix(dot/network): implement a handshake timeout (#1615) * chore: return the bytes read by leb128 * feat: add handshake timeout * chore: remove debug network loglevel * chore: get back to trace * chore: stop ticker no matter the case * chore: implement timer and use unbuffered * chore: using defer * chore: remove the timer.Stop() when the <-timer.C was called * fix(dot/network): check if peer supports protocol (#1617) * fix(dot/core): Add only extrinsic during chain reorg. (#1609) * maintainence: fix network tests on CI (#1627) * fix(dot/state, lib/babe, lib/trie): improve syncing between gossamer authority nodes (#1613) * fix(dot/network, lib/grandpa): fix handshake decoding and grandpa message handler sigabort (#1631) * chore: remove finalnum inherent, clear babe `slotToProof` map (#1632) * fix(dot/network): Check for size when decoding leb128. (#1634) * chore: replace handmade test mocks with auto-generated mocks (#1626) * chore(lib/blocktree): cache nodes in map (#1633) * fix(lib/babe): fix timing for transition between epochs (#1636) * feat(dot/sync): implement codeSubstitutes (#1635) * chore(deps): bump glob-parent in /tests/polkadotjs_test (#1637) * feat(dot/state): implement online pruning of historical state tries (#1596) * chore: updated doc links (#1647) * chore: updated doc links * chore: increase timeout * chore: update linter config * chore(dot/core, dot/sync, lib/babe): refactor handling on block import to reduce duplicate code (#1645) * chore: change tests log level to info (#1644) * chore: change tests log level to info * chore: revert previus log levels * chore: fix the corrects levels * ajust make mock command * exec go mod tidy * fix lint * chore: update docs * fix(dot/core): check transaction Validity.Propagate field to determine whether to propagate tx (#1643) * check validate.Propagate field * add functionality to remove non-propagate txs * fix mocks * chore: adding verbosity to golangci * chore: change the out-format argument golangci * using print-issued-lines arg * ínstalling golangci instead use github actions * lint * clean-up logic checks * run make mock * update comments, fix mock output * add test for bogus extrinsic * fix spelling * change logging level Co-authored-by: Eclésio Júnior <[email protected]> * refactor(lib/scale): refactor lib/scale into own package with idiomatic types, marshalling, and optionality (#1548) * scale encoding with optionality, struct tag field ordering, uint128 * add indices caching * add mtx * add variable data type interface, test to compare old vs new encoding * fix width int decode and tests * wip * []byte, string decoding * encodeBool and tests * refactor tests, include optionality tests * use shared tests in decode * struct decode tests, and unmarshal refactor * wip * decode of VariantDataType, wip tests * add optionality testing * fix struct tests and optionality tests * test VaryingDataType * wip decode refactor, use reflect.Value as passed param * repurpose int and uint as compact length encoded integers, remove unnecessary handling of []int * cleanup, and all tests benchmark * add README * update README * update readme * update readme * update README * update README * rResult encode/decode and RegisterResult * wip cr feedback * add licenses * add custom primitive encode/decode * more cr feedback * cr feedback * wip * revise Result * add readme * add usage example for Result * refactor(lib/scale): Revise VaryingDataType interfaces, and introduce VaryingDataTypeSlice (#1651) * wip VaryingDataType and VaryingDataTypeSlice * refactor VaryingDataType and add VaryingDataTypeSlice * update README * fix lint * update examples * fix deepsource * check decoded in comparison_test * cr feedback * fix result.set with nil value * feat(dot/babe) implement block production time metric (#1648) * metric: gossamer_proposer_block_constructed * chore: improve metrics instance and add tests * chore: add peer check and peerstore metrics * chore: fix pacakge name and interface to gauge struct * chore: change to const * chore: adjust babe metrics * chore: removing duplicated net metrics * chore: improve babe time to build block test * chore: fix CI tests failures * exec go mod tidy * chore: go mod * change docker-compose instructions to docs/ folder * fix(lib/babe): fix setting first slot of network, fix loading BABE epoch params (#1640) * chore: replace time.After with time.NewTicker (#1650) * replace time.After with time.NewTimer * replace time.Affer with time.NewTicker * lint * replace time.After is discovery so ttl var is used * replace time.After in if statement * add configuration variables for time duration functions * feat(dot/telemetry): implement telemetry message network_state (#1618) * refactor telemetry messages to map format * add basic network state telemetry message * refactor message sender to handle interface{} types * refactor telemetry messages to be structs * lint * go fmt * lint * move msg building logic outside msg sending loop * make telemetry messages an interface * Lookup transactions count from TransactionsState * address comments * fix mocks for tests * lint * refactor TelemetryMessage to Message * update mock handler to return result * add TransactionsCount to mockhandler * move logic to build new network state message * lint * fix interface * update mockhandler * lint * chore: update dev, gssmr to use genesis-spec by default (#1665) * feat(lib/transactions) ready transactions metrics (#1656) * pool ready transaction metrics * chore: add priority queue metrics * chore: fix lint * chore: remove println * chore: add copyright comments * chore: resolve comments * chore: remove stop function and add comments to exported funcs * chore: adjust tests * chore: make metrics.Start blocking and using wg to inner gorout * chore: fix typo * chore: fix metrics test * fix: solving data race condition on metrics tests * feat(lib/trie): Parallel hash trie. (#1657) * feat(lib/trie): Parallel hash trie. * Fix race. * Use bytes.Buffer in pool. * chore: update gssmr genesis to v0.9; stub missing ext_ funcs (#1625) * refactor(dot/rpc/modules) Add author unit tests, migrate old tests to integration tests (#1666) * chore (pkg/scale) scale babe integration (#1670) * integrate scale into babe library * use results for unmarshalling * clean up code * fix switch to pass checks * integrate scale into dot/sync * cr feedback * merge Co-authored-by: noot <[email protected]> * feat(lib/grandpa) implement grandpa finality round metrics (#1655) * chore: implement grandpa finality round * pool ready transaction metrics * chore: add priority queue metrics * chore: fix lint * chore: add gauge collector interface * chore: fix lint * remove unused metrics timeout * chore: remove unused test * remove unused consts * chore: adding tests * fix(dot/network, lib/grandpa): fix node sync, improve devnet finality * fix(dot/node): Start websocket server only with `--ws` flag (#1671) * fix (dot/telemetry): NoTelemetry flag stops telemetry (#1660) * refactor(dot/rpc/subscription): refactor websocket `HandleComm` (#1673) * chore(pkg/scale): scale integration into genesis (#1669) * fix(dot/network): fix stream manager tests (#1683) * chore (pkg/scale) integrate scale into dot/core and dot/sync (#1676) * scale into messages_test * integrate scale into dot core * integrate scale into dot/sync * integrate scale into sync and core Co-authored-by: noot <[email protected]> * chore (pkg/scale) integrate scale pkg into dot/rpc (#1678) * integrate scale into dot/sync * integrate scale into dot/rpc * scale into epoch * integrate scale into pruner * integrate scale pkg into dot/state * WIP/Fix digest encoding errors * remove changes in dot/state to include in separate PR * feat(lib/grandpa) add round state rpc call (#1664) * chore: add interface for grandpa in rpc pkg * chore: create roundState rpc call * chore: coment unused branch * chore: fix lint * chore: add test case * chore: fix lint * chore: address comments * chore: fix the diff implementation * chore: address comment * chore: change PreVotes and PreCommits interface signature * chore: remove check * chore: improve code defs * chore: replace unbuffered channels with buffered channels (#1668) * add buffer to channels * add buffers to channels in tests * remove buffers from channels that shouldn't be buffered * added DEFAULT_BUFFERS_SIZE const * lint * addres comments * fix(lib/babe): always use 2/3 of slot to produce block, re-add potentially valid txs to queue (#1679) * fix(dot/types): fix max value for digest (#1687) Co-authored-by: noot <[email protected]> * fix(dot/state, lib/grandpa): update justification and SignedVote handling in database (#1682) * feat(dot/rpc) Add `system_localPeerId` rpc call (#1690) * chore: add local peer id rpc call * chore: add func desc * cover empty test case * chore: ignore Id on func name * chore: adjusts tests * chore: added cname for docs (#1692) * feat(dot/rpc): Add `system_localListenAddresses` RPC call (#1689) * chore(lib/grandpa, dot/network): send `CommitMessage` directly to peer on round mismatch; cleanup grandpa `receiveMessages` (#1684) * feat(dot/rpc) Add `system_syncState` rpc call (#1691) * chore: adjust tests * chore: exposing network methods * chore: add test * chore: resolve lint and improve func description * chore: resolve lint * fix: update gssmr genesis to use pallet_babe::SameAuthoritiesForever (#1696) * chore(lib/common) implement byte pool to improve websocket subscription efficiency (#1693) * implement bufferpool * implement byte pool for subscription setup * lint * fix lint * address comments * refactor UnregisterFinalizedChannel to UnregisterFinalisedChannel * lint * change error handling * refactor NumPooled to Len * fix(dot/state): track runtime per-block, fix runtime upgrades differing between forks (#1638) * fix runtime upgrade * Add runtime in blocktree. * Remove runtime instance from babe service. * Remove runtime instance from sync service. * Self review. * Fix chain reorg test. * Fix failing test. * Self review. * Address comments. * Remove unused functions from interface. * Fix failing test. * fix TestService_HandleSubmittedExtrinsic * update HandleTransactionMessage to set runtime storage before validating * Fix failing test. * address comment * lint * cleanup Co-authored-by: noot <[email protected]> Co-authored-by: noot <[email protected]> * feat(dot/network) add `network_is_major_syncing` metric (#1697) * chore: transform goal into atomic * add tests * remove debug from polkadot config * chore: add comment * chore: remove comments * change var name Co-authored-by: Timothy Wu <[email protected]> * update var name * chore: add metrics port * chore: add clean up to close dbs while testing Co-authored-by: Timothy Wu <[email protected]> * fix(dot/network): decrease DHT find peers interval for gssmr nodes (#1703) * fix(docs): improve build-spec usage docs (#1706) * feat: improve build-spec usage docs * add doc to use build-spec command using --output flag * fix(dot/state): add StorageState Lock/Unlock API for usage by babe and sync (#1700) * add Jimmy to codeowners (#1711) * feat(dot/rpc) implement `author_hasSessionKeys` RPC call (#1704) * chore: add interface for grandpa in rpc pkg * chore: create roundState rpc call * chore: coment unused branch * chore: fix lint * chore: add test case * chore: fix lint * chore: add grandpa subscribe justification rpc call * chore: add cancel function to stop goroutine when unsuubscribe * chore: resolve lint * chore: add tests to subscribe justification call * remove deps from round state rpc call pr * chore: remove unecessary changes * remove inpackage well mock is in mocks folder * chore: fix lint * wip: fixing tests * chore: use channels to control goroutines * chore: resolve lint * add time.Duration on structs * chore: add runtime method and rpc method * wip: fix runtime response scale decoding * chore: adding data to tests * wip: improve test coverage and assertions * chore: hasSessionKey rpc call done * chore: change config.toml back * chore: remove log, add string.EqualFold * chore: remove unused logs, get back new private key * update hasSessionKey method to use coreapi insted of runtime api * chore: resolve lint issues * chore: change from []byte to []uint8 * chore: fix tests failures * chore: fix HasSessionKeyResponse comments Co-authored-by: noot <[email protected]> * chore: fix KeyTypeID comments Co-authored-by: noot <[email protected]> * chore: update comments, unexport struct and remove qtyCheck * chore: improve hasSessionKey key check * chore: update params to represent better data * chore: improve func name to DecodeKeyPairFromHex * chore: get back func names to avoid naming conflicts * chore: update go.sum * chore: update grandpa_subscribeJustification return response * chore: fix lint issues * chore: check the len of the slice of decoded keys * chore: update exports comments * chore: update the import style * chore: improve DecodeKeyPairFromHex export comment * chore: hasSessionKeys test fixed * chore: improve export function comment * chore: group rpc methods string in a unique place * chore: use chan struct{} * chore: fix tests that uses wsconn * chore: fix subscription test * chore: improve log message * chore: fix lint issues * chore: increase the author RPC method qty * chore: fix deepsource style error Co-authored-by: Arijit Das <[email protected]> Co-authored-by: noot <[email protected]> * Revert "feat(dot/rpc) implement `author_hasSessionKeys` RPC call (#1704)" (#1714) This reverts commit 86df957. * feat(dot/rpc) add `grandpa_subscribeJustifications` rpc call (#1672) * chore: add interface for grandpa in rpc pkg * chore: create roundState rpc call * chore: coment unused branch * chore: fix lint * chore: add test case * chore: fix lint * chore: add grandpa subscribe justification rpc call * chore: add cancel function to stop goroutine when unsuubscribe * chore: resolve lint * chore: add tests to subscribe justification call * remove deps from round state rpc call pr * chore: remove unecessary changes * remove inpackage well mock is in mocks folder * chore: fix lint * wip: fixing tests * chore: use channels to control goroutines * chore: resolve lint * add time.Duration on structs * chore: update grandpa_subscribeJustification return response * chore: fix lint issues * chore: resolve tests issues * chore: fix channels and methods const * chore: improve error messages Co-authored-by: Arijit Das <[email protected]> * chore(lib/runtime): stub v0.9.8 runtime funcs, partially implement storage ext_ funcs (#1710) * fix(lib/grandpa): fix grandpa stall and various bugs (#1708) * feat(dot/rpc) implement `author_hasSessionKeys` RPC call (#1715) * chore: add interface for grandpa in rpc pkg * chore: create roundState rpc call * chore: coment unused branch * chore: fix lint * chore: add test case * chore: fix lint * chore: add grandpa subscribe justification rpc call * chore: add cancel function to stop goroutine when unsuubscribe * chore: resolve lint * chore: add tests to subscribe justification call * remove deps from round state rpc call pr * chore: remove unecessary changes * remove inpackage well mock is in mocks folder * chore: fix lint * wip: fixing tests * chore: use channels to control goroutines * chore: resolve lint * add time.Duration on structs * chore: add runtime method and rpc method * wip: fix runtime response scale decoding * chore: adding data to tests * wip: improve test coverage and assertions * chore: hasSessionKey rpc call done * chore: change config.toml back * chore: remove log, add string.EqualFold * chore: remove unused logs, get back new private key * update hasSessionKey method to use coreapi insted of runtime api * chore: resolve lint issues * chore: change from []byte to []uint8 * chore: fix tests failures * chore: fix HasSessionKeyResponse comments Co-authored-by: noot <[email protected]> * chore: fix KeyTypeID comments Co-authored-by: noot <[email protected]> * chore: update comments, unexport struct and remove qtyCheck * chore: improve hasSessionKey key check * chore: update params to represent better data * chore: improve func name to DecodeKeyPairFromHex * chore: get back func names to avoid naming conflicts * chore: update go.sum * chore: update grandpa_subscribeJustification return response * chore: fix lint issues * chore: check the len of the slice of decoded keys * chore: update exports comments * chore: update the import style * chore: improve DecodeKeyPairFromHex export comment * chore: hasSessionKeys test fixed * chore: improve export function comment * chore: group rpc methods string in a unique place * chore: use chan struct{} * chore: fix tests that uses wsconn * chore: fix subscription test * chore: improve log message * chore: fix lint issues * chore: increase the author RPC method qty * chore: fix deepsource style error * chore: keep just related changes * chore: improve test coverage * chore: improve test coverage on lib/keystore/helpers.go * chore: improve testing and remove unused function * chore: create more test cases to hasSessionKey RPC method Co-authored-by: Arijit Das <[email protected]> Co-authored-by: noot <[email protected]> * feat(dot/rpc/modules) implement `state_queryStorage` rpc method (#1707) * wip: state query storage rpc * chore: query keys from block stateRoot * chore: implemented rpc method and format response correctly * chore: check starting block hash is nil * chore: use GetStorage instead of TrieState * chore: remove logs * chore: resolve lint issues * chore: preallocate slice, use varidic param * chore: update variable name * chore: made from not nulable * chore: get best block hash if to is nil * chore: remove pointer and compare with EmptyHash * chore: fix tests, remove write to nil reference * chore: fix deepsource rule * chore: fix rpc test * chore: uncomment conditional test * chore: improve testing * chore: change from null to a empty array * chore: skip state_queryStorage RPC method test * chore: remove unconsitent test check * feat(dot/rpc/modules): add `system_addReservedPeer` and `system_removeReservedPeer` RPC call (#1712) * chore: include rpc methods and adding peers on store * chore: add unit tests for reserved peers on net layer * chore: add unit tests for reserved peers on net layer * chore: remove redundancy conditionals * chore: add and remove peers from protected map * increase the system RPC methods qtt * chore: test add and remove protected peers * chore: improve comment at removeReservedPeers Co-authored-by: noot <[email protected]> * chore: improve comment at addReservedPeers * chore: jump when there is no peer to disconect * chore: fix lint issues * chore: remove unused checks and use trim space * chore: improve test coverage * chore: remove global websocket test variable * chore: improve tests on modules/system Co-authored-by: noot <[email protected]> * chore: updated pr template to include primary reviewer (#1724) Co-authored-by: noot <[email protected]> Co-authored-by: Arijit Das <[email protected]> Co-authored-by: Ryan Noble <[email protected]> Co-authored-by: Dustin Brickwood <[email protected]> Co-authored-by: Eclésio Junior <[email protected]> Co-authored-by: Kanishka <[email protected]> Co-authored-by: noot <[email protected]> Co-authored-by: Daniel Gómez <[email protected]> Co-authored-by: Arijit Das <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Timothy Wu <[email protected]> Co-authored-by: JimboJ <[email protected]>
# [0.6.0](v0.5.0...v0.6.0) (2021-12-03) ### Bug Fixes * **babe:** Fix extrinsic format in block. ([#1530](#1530)) ([1a03b2a](1a03b2a)) * **ci:** add missing go-version matrix to fix development branch CI ([#2037](#2037)) ([6babe76](6babe76)) * **cmd/cfg:** Use Babe Lead value from toml config ([#2032](#2032)) ([06aa3e3](06aa3e3)) * cmd/gossamer: Generate random name if --name flag not set ([#1506](#1506)) ([3c05a88](3c05a88)) * confirm block import notifier is closed properly ([#1736](#1736)) ([ad2d85e](ad2d85e)) * **docs:** improve build-spec usage docs ([#1706](#1706)) ([2e164b4](2e164b4)) * **dot/core:** Add only extrinsic during chain reorg. ([#1609](#1609)) ([29413d4](29413d4)) * **dot/core:** Batch process transaction message. ([#1780](#1780)) ([0064836](0064836)) * **dot/core:** check transaction Validity.Propagate field to determine whether to propagate tx ([#1643](#1643)) ([81f23cc](81f23cc)) * **dot/core:** Fix handle transaction message test. ([#1607](#1607)) ([58b8725](58b8725)) * **dot/network, lib/grandpa:** fix handshake decoding and grandpa message handler sigabort ([#1631](#1631)) ([887f72c](887f72c)) * **dot/network, lib/grandpa:** fix node sync, improve devnet finality ([bcc7935](bcc7935)) * **dot/network:** add nil checks in connManager ([#2069](#2069)) ([7f9c042](7f9c042)) * **dot/network:** Check for size when decoding leb128. ([#1634](#1634)) ([d082b9e](d082b9e)) * **dot/network:** check if peer supports protocol ([#1617](#1617)) ([6bf66a4](6bf66a4)) * **dot/network:** decrease DHT find peers interval for gssmr nodes ([#1703](#1703)) ([08516a0](08516a0)) * **dot/network:** fix bugs in notifications protocol handlers; add metrics for inbound/outbound streams ([#2010](#2010)) ([8c2993d](8c2993d)) * **dot/network:** fix dht connection on discovery on devnet ([#2059](#2059)) ([da065b8](da065b8)) * **dot/network:** fix discovery between gossamer nodes ([#1594](#1594)) ([f4c79d3](f4c79d3)) * **dot/network:** fix justification request at head logic ([#1510](#1510)) ([98d1413](98d1413)) * **dot/network:** fix memory allocations with `sizedBufferPool` ([#1963](#1963)) ([e0b126b](e0b126b)) * **dot/network:** Fix missing digest in header ([#2092](#2092)) ([21ea85e](21ea85e)) * **dot/network:** Fix notification handshake and reuse stream. ([#1545](#1545)) ([a632dc4](a632dc4)) * **dot/network:** fix receiving notifications messages from substrate peers ([#1517](#1517)) ([fdf3c53](fdf3c53)) * **dot/network:** fix stream manager tests ([#1683](#1683)) ([e02eca4](e02eca4)) * **dot/network:** implement a handshake timeout ([#1615](#1615)) ([87c2f63](87c2f63)) * **dot/network:** Implement time based handle transaction ([#1942](#1942)) ([dd08424](dd08424)) * **dot/network:** move low reputation peer removal from network ConnManager to peer scoring logic (dot/peerstate) ([#2068](#2068)) ([ac16285](ac16285)), closes [#2039](#2039) * **dot/network:** Return on EOF error while reading stream. ([#1733](#1733)) ([f447eac](f447eac)) * **dot/network:** split stored streams and handshakeData into inbound and outbound ([#1553](#1553)) ([637050b](637050b)) * **dot/network:** update notificationsProtocol handshakeData to sync.Map ([#1492](#1492)) ([22f7269](22f7269)) * **dot/node:** Start websocket server only with `--ws` flag ([#1671](#1671)) ([6ecef3b](6ecef3b)) * **dot/state, lib/babe, lib/trie:** improve syncing between gossamer authority nodes ([#1613](#1613)) ([ca99fbf](ca99fbf)) * **dot/state, lib/grandpa:** update justification and SignedVote handling in database ([#1682](#1682)) ([bbdcd6f](bbdcd6f)) * **dot/state,dot/network:** improve memory usage when syncing ([#1491](#1491)) ([3b2ad8d](3b2ad8d)) * **dot/state:** add StorageState Lock/Unlock API for usage by babe and sync ([#1700](#1700)) ([3c22ace](3c22ace)) * **dot/state:** fix deadlock, fixes bootstrap syncing ([#1959](#1959)) ([dd80c09](dd80c09)) * **dot/state:** fix usage of trie.Snapshot ([#1489](#1489)) ([3880a40](3880a40)) * **dot/state:** track runtime per-block, fix runtime upgrades differing between forks ([#1638](#1638)) ([e133884](e133884)) * **dot/state:** update `*state.BlockState.AddBlockToBlockTree` to store block in `unfinalisedBlocksMap` ([#2006](#2006)) ([55d997f](55d997f)) * **dot/sync:** add nil header checks ([#2099](#2099)) ([a7d4be0](a7d4be0)) * **dot/sync:** fix block request and response logic ([#1907](#1907)) ([9c6283e](9c6283e)) * **dot/sync:** fix creating block response, fixes node sync between gossamer nodes ([#1572](#1572)) ([1328c80](1328c80)) * **dot/telemetry:** refactor telemetry to reduce CPU usage ([#1597](#1597)) ([bc31ac7](bc31ac7)) * **dot/types:** *types.Body to be of type []types.Extrinsic ([#1807](#1807)) ([4c09715](4c09715)) * **dot/types:** fix max value for digest ([#1687](#1687)) ([48405e7](48405e7)) * **dot:** fix `TestNewNode` ([#2070](#2070)) ([42908d0](42908d0)) * fix edit link ([#1507](#1507)) ([5089327](5089327)) * fix Kusama sync; add storageState lock in core.HandleTransactionMessage ([#1783](#1783)) ([1d688e4](1d688e4)) * **lib/babe, lib/runtime/wasmer:** fixes for v0.9.8+ runtime ([#2075](#2075)) ([2f9f80c](2f9f80c)) * **lib/babe:** add `--babe-lead` flag, update epoch handling logic ([#1895](#1895)) ([7abcce6](7abcce6)) * **lib/babe:** add pre-runtime digest before calling initialize_block ([#1581](#1581)) ([c1b26d3](c1b26d3)) * **lib/babe:** always use 2/3 of slot to produce block, re-add potentially valid txs to queue ([#1679](#1679)) ([cf93ad3](cf93ad3)) * **lib/babe:** call AddBlock in BABE synchronously ([#1585](#1585)) ([86acc43](86acc43)) * **lib/babe:** fix BABE state storing after building block ([#1536](#1536)) ([1a3dea2](1a3dea2)) * **lib/babe:** fix err log ([#1801](#1801)) ([a96f06a](a96f06a)) * **lib/babe:** fix setting first slot of network, fix loading BABE epoch params ([#1640](#1640)) ([5c3dbfe](5c3dbfe)) * **lib/babe:** fix timing for transition between epochs ([#1636](#1636)) ([57027db](57027db)) * **lib/blocktree:** fix blocktree bug ([#2060](#2060)) ([c17b53a](c17b53a)) * **lib/blocktree:** fix potential nil pointer dereference in `HighestCommonAncestor`, core `handleBlocksAsync` ([#1993](#1993)) ([f7f4463](f7f4463)) * **lib/blocktree:** fix setting leaves after blocktree pruning ([#1605](#1605)) ([58c0854](58c0854)) * **lib/blocktree:** removes the inconsistency to choose a deepest leaf ([#2094](#2094)) ([43d68e3](43d68e3)) * **lib/crypto/ed25519:** update ed25519 to use go-schnorrkel bip39 derivation ([#1488](#1488)) ([dfb95d2](dfb95d2)) * **lib/genesis:** Update missing and incorrect fields in genesis file. ([#1681](#1681)) ([8207704](8207704)) * **lib/grandpa:** fix grandpa stall and various bugs ([#1708](#1708)) ([67c93f4](67c93f4)) * **lib/grandpa:** fix grandpa vote message switch ([#2095](#2095)) ([461890c](461890c)) * **lib/grandpa:** fix threshold checking to be strictly greater than 2/3 ([#1891](#1891)) ([66ffe51](66ffe51)) * **lib/grandpa:** use `defaultGrandpaInterval` if not set, fixes error on startup ([#1982](#1982)) ([75627b5](75627b5)) * **lib/runtime/life:** remove import C from life ([#1923](#1923)) ([ed507d2](ed507d2)) * **lib/runtime:** update HOST_API_TEST_RUNTIME_URL to reference specific commit ([#1885](#1885)) ([666ed06](666ed06)) * **log-levels:** do not ignore configuration file log levels ([#2016](#2016)) ([80879b2](80879b2)) * pending bubble hidden after block included ([#1592](#1592)) ([5826322](5826322)) * persist node name ([#1543](#1543)) ([88b88f2](88b88f2)) * **pprof:** only run pprof service if enabled ([#2073](#2073)) ([55669c5](55669c5)) * **release:** Trigger release when pushed to main branch. ([#1566](#1566)) ([d445c97](d445c97)) * **rpc/subscription:** subscribe runtime version notify when version changes ([#1686](#1686)) ([9a76d39](9a76d39)) * Staging CI workflow ([#2034](#2034)) ([84ec792](84ec792)) * **trie:** memory leak fix in `lib/trie` ([#2009](#2009)) ([0ad5eb7](0ad5eb7)) * update deprecated package ([#1603](#1603)) ([f195204](f195204)) * update go-schnorrkel version ([#1557](#1557)) ([b86c7ff](b86c7ff)) * update gssmr genesis to use pallet_babe::SameAuthoritiesForever ([#1696](#1696)) ([fb0a751](fb0a751)) * update HOST_API_TEST_RUNTIME_URL ([#1898](#1898)) ([2ef59a8](2ef59a8)) * **utils:** create a specific folder for database ([#1598](#1598)) ([8c67795](8c67795)) ### Features * add --chain dev option ([#1561](#1561)) ([04a2969](04a2969)) * Add properties and chainId on build-spec command ([#1520](#1520)) ([b18290c](b18290c)) * cmd: implement import-runtime subcommand ([#1483](#1483)) ([d82b2da](d82b2da)) * **cmd/gossamer:** implement --telemetry-url parameter ([#1890](#1890)) ([b202e89](b202e89)), closes [#1502](#1502) * **cmd:** implement offline pruning of state trie ([#1564](#1564)) ([af9c925](af9c925)) * **devnet:** Local Gossamer Devnet ([#2008](#2008)) ([a520001](a520001)) * **dot/network, lib/grandpa:** request justification on receiving NeighbourMessage, verify justification on receipt ([#1529](#1529)) ([e1f9f42](e1f9f42)) * **dot/network:** Add cache for network message. ([#1511](#1511)) ([accaf69](accaf69)) * **dot/network:** add propagate return bool to messageHandler func type to determine whether to propagate message or not ([#1555](#1555)) ([0d6f488](0d6f488)) * **dot/network:** implement persistent peers functionality ([#1512](#1512)) ([7850532](7850532)) * **dot/network:** implement streamManager to cleanup not recently used streams ([#1611](#1611)) ([ba861bf](ba861bf)) * **dot/network:** request block justifications when near head ([#1499](#1499)) ([ae7012b](ae7012b)) * **dot/peerset:** Implement peer scoring ([#1791](#1791)) ([1c989ad](1c989ad)) * **dot/rpc/modules:** add `system_addReservedPeer` and `system_removeReservedPeer` RPC call ([#1712](#1712)) ([dba5922](dba5922)) * **dot/rpc:** Add `system_localListenAddresses` RPC call ([#1689](#1689)) ([c981d2e](c981d2e)) * **dot/rpc:** Implement `childstate_getKeys` rpc call ([#1800](#1800)) ([9b2f41e](9b2f41e)) * **dot/rpc:** implement sync_state_genSyncSpec RPC call ([#1827](#1827)) ([2186caf](2186caf)) * **dot/state:** implement online pruning of historical state tries ([#1596](#1596)) ([3eb9399](3eb9399)) * **dot/sync:** implement codeSubstitutes ([#1635](#1635)) ([d87aaeb](d87aaeb)) * dot/telemetry: Implement basic telemetry connection ([#1497](#1497)) ([fcb4159](fcb4159)) * **dot/telemetry:** Added connection retry ([#1904](#1904)) ([579a791](579a791)) * **dot/telemetry:** Added more telemetry messages in grandpa client ([#2043](#2043)) ([2e57d15](2e57d15)), closes [#1841](#1841) [#1842](#1842) * **dot/telemetry:** implement notify.finalized telemetry interface ([#1877](#1877)) ([de1a60d](de1a60d)) * **dot/telemetry:** implement substrate_number_leaves metrics ([#1926](#1926)) ([69823c0](69823c0)) * **dot/telemetry:** implement telemetry message network_state ([#1618](#1618)) ([a81844e](a81844e)) * **flags:** read log levels from flags ([#1953](#1953)) ([9694e46](9694e46)) * implement ext_default_child_storage_storage_kill_version_2 ([#1799](#1799)) ([c2908ae](c2908ae)) * implement ext_offchain_index_set_version_1 for wasmer runtime ([#1739](#1739)) ([96c30a6](96c30a6)) * **lib/babe:** add check of types.ConfigData.SecondarySlots for disabling secondary verification ([#1910](#1910)) ([cd27ae4](cd27ae4)) * **lib/grandpa:** fully verify justifications using GrandpaState ([#1544](#1544)) ([028d25e](028d25e)) * **lib/grandpa:** Include equivocatory nodes while creating justification ([#1911](#1911)) ([aca86b6](aca86b6)) * **lib/grandpa:** send NeighbourMessage to peers ([#1558](#1558)) ([322ccf9](322ccf9)) * **lib/runtime/wasmer:** implement ext_default_child_storage_storage_kill_version_3 ([#1878](#1878)) ([a719a60](a719a60)) * **lib/runtime/wasmer:** implement ext_offchain_local_storage_version_1 ([#1821](#1821)) ([0f63b17](0f63b17)) * **lib/runtime:** Implement `ext_offchain_http_request_add_header_version_1` host function ([#1994](#1994)) ([0a30b3d](0a30b3d)) * **lib/runtime:** Implement `ext_offchain_http_request_start_version_1` host function ([#1947](#1947)) ([974b1fc](974b1fc)) * **lib/runtime:** Implement `trie_blake2_256_verify_proof` host function ([#1920](#1920)) ([506565d](506565d)) * **lib/trie:** Implement `verify_proof` function ([#1883](#1883)) ([67bb5ef](67bb5ef)) * **lib/trie:** Implement limit for trie.ClearPrefix ([#1905](#1905)) ([becec9e](becec9e)) * **lib/trie:** Parallel hash trie. ([#1657](#1657)) ([22827e7](22827e7)) * **pprof:** Pprof HTTP server service ([#1991](#1991)) ([ce24ea9](ce24ea9)) * **rpc/subscription:** implement state_unsubscribeStorage ([#1574](#1574)) ([7574f10](7574f10)) * **rpc:** Implement `childstate_getChildStorage` RPC call ([#1832](#1832)) ([3d949f2](3d949f2)) * **rpc:** Implement `childstate_getStorageHash` RPC call ([#1805](#1805)) ([e539bd3](e539bd3)) * **rpc:** Implement `childstate_getStorageSize` RPC call ([#1810](#1810)) ([a04deb6](a04deb6)) * **rpc:** Implement `payment_queryInfo` RPC call ([#1826](#1826)) ([7a5deec](7a5deec)) * **rpc:** Implement `state_getReadProof` rpc call ([#1768](#1768)) ([865f80f](865f80f)) * **runtime:** implement custom logging handler that print function name ([#1825](#1825)) ([2b1276d](2b1276d)) * **telemetry:** send telemetry messages when GRANDPA receieves commit or vote messages ([#2015](#2015)) ([7bf40e1](7bf40e1)), closes [#1840](#1840) [#1839](#1839) [#1838](#1838) * **telemetry:** send txpool.import telemetry msg ([#1966](#1966)) ([ffc81bf](ffc81bf)) ### Reverts * Revert "feat(dot/rpc) implement `author_hasSessionKeys` RPC call (#1704)" (#1714) ([65380fd](65380fd)), closes [#1704](#1704) [#1714](#1714)
|
🎉 This PR is included in version 0.6.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Changes
Rolesfield fromtransactionHandshakeas the handshake is actually emptyTests
Issues