0.7.0 (2022-11-23)
- chain: update ed25519 addresses in dev/gssmr genesis files (#2225) (5f47d8b)
- ci: caching of Go caches (#2451) (ce3c10c)
- ci: codecov.yml configuration (#2698) (d4fc383)
- ci: comment skip code for required workflows (#2312) (45dce9b)
- ci: copyright workflow to exit if different files (#2487) (89c32ae)
- ci: deepsource toml configuration (#2744) (86a70de)
- ci: embed v0.9.20 runtime, update test suite, and ci workflows (#2543) (0fff418), closes #2419 #2561 #2572 #2581 #2671
- ci: fix staging Dockerfile (#2474) (ae04b80)
- ci: mocks checking fixes (#2274) (d1308e0)
- ci: run devnet module unit tests (#2756) (f635c59)
- ci: run golangci-lint on integration tests (#2275) (3ae3401)
- cmd: allow --genesis flag to be passed to base command (#2427) (7f5b5aa)
- cmd: avoid nil pointer dereference (#2578) (f2cdfea)
- config: temporary fix for pprof enabled setting precedence (#2786) (d4d6262)
- core: fix txn pool for latest runtime (#2809) (1551e66)
- deps: upgrade chaindb to remove badger logs (#2738) (e0c5706)
- devnet: Fix build workflow for devnet (#2125) (0375fc2)
- Dockerfile: remove script entrypoint (#2707) (abd161b)
- dot/core:
RuntimeInstance
interfaceVersion
signature (#2783) (7d66ec0) - dot/core: fix the race condition in TrieState (#2499) (804069c), closes #2402
- dot/digest: BABE NextEpochData and NextConfigData should be set on finalization (#2339) (e991cc8)
- dot/digest: verify if next epoch already contains some definition (#2472) (a2ac6c2)
- dot/netwok: check for duplicate message earlier (#2435) (d62503f)
- dot/network: change BlockRequestMessage number from uint64 to uint32 (8105cd4)
- dot/network: close notifications streams (#2093) (de6e7c9), closes #2046
- dot/network: fixing errMissingHandshakeMutex (#2303) (eb07a53)
- dot/network: memory improvement for network buffers (#2233) (fd9b70d)
- dot/network: public IP address logging (#2140) (9e21587)
- dot/network: re-add nil mutex check for disconnected peer (#2408) (9b39bd1)
- dot/network: remove
defer cancel()
inside loop (#2248) (9e360a5) - dot/network: resize bytes slice buffer if needed (#2291) (8db8b2a)
- dot/peerset: fix sending on closed channel race condition when dropping peer (#2573) (2fa5d8a)
- dot/peerset: remove race conditions from
peerset
package (#2267) (df09d45) - dot/rpc/modules: grandpa.proveFinality update parameters, fix bug (#2576) (e7749cf)
- dot/rpc/modules: rpc.state.queryStorage fixed (#2565) (1ec0d47)
- dot/rpc: include unsafe flags to be considered by RPC layer (#2483) (3822257)
- dot/state/epoch, lib/babe: enable block production through epochs without rely on finalization (#2593) (a0a1804)
- dot/state: actually prune finalized tries from memory (#2196) (e4bc375)
- dot/state: change map of tries implementation to have working garbage collection (#2206) (fada46b)
- dot/state: inject mutex protected tries to states (#2287) (67a9bbb)
- dot/subscription: check websocket message from untrusted data (#2527) (1f20d98)
- dot/subscription: unsafe type casting from untrusted input (#2529) (1015733)
- dot/sync, dot/rpc: implement HighestBlock (#2195) (f8d8657)
- dot/sync: cleanup logs; don't log case where we fail to get parent while processing (#2188) (cb360ab)
- dot/sync: fix "block with unknown header is ready" error (#2191) (483466f)
- dot/sync: fix
Test_lockQueue_threadSafety
(#2605) (223cfbb) - dot/sync: Fix flaky tests
Test_chainSync_logSyncSpeed
andTest_chainSync_start
(#2610) (7e1014b) - dot/sync: Gossip
BlockAnnounceMessage
only after successfully imported (#2885) (69031a6) - dot/sync: remove block announcement in
bootstrap
sync mode (#2906) (2b4c257) - dot/sync: remove max size limit from ascending block requests (#2256) (e287d7e)
- dot/sync: sync benchmark (#2234) (2f3aef8)
- dot/telemetry: telemetry hashes to be in the hexadecimal format (#2194) (9b48106)
- dot: database close error checks (#2948) (bdb0eea)
- dot: no error logged for init check (#2502) (2971325)
- ensure we convert the
uint
type (#2626) (792e53f) - fix logger mutex locking in
.New
method (#2114) (e7207ed) - internal/log: log level
DoNotChange
(#2672) (0008b59) - levels-logged: Fix log levels logging at start (#2236) (a90a6e0)
- lib/babe: check if authority index is in the
authorities
range (#2601) (1072888) - lib/babe: ensure the slot time is correct before build a block (#2648) (78c03b6)
- lib/babe: epoch context error wrapping (#2484) (c053dea)
- lib/babe: Unrestricted Loop When Building Blocks (GSR-19) (#2632) (139ad89)
- lib/blocktree: reimplement
BestBlockHash
to take into account primary blocks in fork choice rule (#2254) (1a368e2) - lib/grandpa: avoid spamming round messages (#2688) (b0042b8)
- lib/grandpa: capped number of tracked commit messages (#2490) (47c23e6)
- lib/grandpa: capped number of tracked vote messages (#2485) (d2ee47e), closes #1531
- lib/grandpa: check equivocatory votes count (#2497) (014629d), closes #2401
- lib/grandpa: Duplicate votes is GRANDPA are counted as equivocatory votes (GSR-11) (#2624) (422e7b3)
- lib/grandpa: Storing Justification Allows Extra Bytes (GSR-13) (#2618) (0fcde63)
- lib/grandpa: update grandpa protocol ID (#2678) (3be75b2)
- lib/grandpa: various finality fixes, improves cross-client finality (#2368) (c04d185)
- lib/grandpa: verify equivocatory votes in grandpa justifications (#2486) (368f8b6)
- lib/runtime: avoid caching version in runtime instance (#2425) (7ab31f0)
- lib/runtime: stub v0.9.17 host API functions (#2420) (6a7b223)
- lib/trie:
handleDeletion
generation propagation (24c303d) - lib/trie:
PopulateMerkleValues
functionality changes and fixes (#2871) (7131290) - lib/trie: Check for root in EncodeAndHash (#2359) (087db89)
- lib/trie: Make sure writing and reading a trie to disk gives the same trie and cover more store/load child trie related test cases (#2302) (7cd4118)
- lib/trie: prepare trie nodes for mutation only when needed (#2834) (26868df)
- lib/trie: remove map deletion at
loadProof
(#2259) (fbd13d2) - lint: fix issues found by golangcilint 1.47.3 (#2715) (5765e67)
- mocks: add missing
//go:generate
for mocks (#2273) (f4f7465) - pprof: pprofserver flag changed to boolean (#2205) (be00a69)
- staging: revise datadog-agent start process (#2935) (36ce37d)
- state/epoch: assign epoch 1 when block number is 0 (#2592) (e5c8cf5)
- state/grandpa: track changes across forks (#2519) (3ab76bc)
- tests:
TestAuthorModule_HasSessionKeys_Integration
(#2932) (8d809aa) - tests: fix block body regex in
TestChainRPC
(#2805) (b0680f8) - tests: Fix RFC3339 regex for log unit tests (9caea2a)
- tests: Fix wasmer flaky sorts (#2643) (7eede9a)
- tests: handle node crash during waiting (#2691) (843bd50)
- tests: update block body regex in
TestChainRPC
(#2674) (055e5c3) - trie: decode inline child nodes (#2369) (9efde47)
- trie: descendants count for clear prefix (#2606) (1826896)
- trie: disallow empty byte slice node values (#2927) (d769d1c)
- trie: equality differentiate nil and empty storage values (#2969) (72a08ec)
- trie: no in-memory caching of node encoding (#2919) (856780b)
- trie: Panic when deleting nonexistent keys from trie (GSR-10) (#2609) (7886318)
- trie: remove encoding buffers pool (#2929) (f4074cc)
- trie: use cached Merkle values for root hash (#2943) (ec2549a)
- trie: use direct Merkle value for database keys (#2725) (1a3c3ae)
- upgrade auto-generated mocks (#2910) (a2975a5)
- wasmer: error logs for signature verification (#2752) (363c080)
- wasmer: fix flaky sort in
Test_ext_crypto_sr25519_public_keys_version_1
(#2607) (c061b35)
- build: add
github.com/breml/rootcerts
(#2695) (c74a5b0) - build: binary built-in timezone data (#2697) (fdd5bda)
- chain: use always the raw genesis file (#2775) (dd2fbc9)
- ci: update mockery from
2.10
to2.14
(#2642) (d2c42b8) - cross-client: create docker-compose.yml for local devnet (#2282) (8abbd87)
- detect chain directory dynamically (#2292) (85c466c)
- devnet: add substrate docker images to dockerfile (#2263) (b7b2a66)
- devnet: continuous integration
gssmr
devnet on AWS ECS (#2096) (d096d44) - docker: docker-compose.yml to run Gossamer, Prometheus and Grafana (#2706) (c5dda51)
- dot/network: add mismatched genesis peer reporting (#2265) (a1d7269)
- dot/state:
gossamer_storage_tries_cached_total
gauge metric (#2272) (625cbcf) - e2e: build Gossamer on any test run (#2608) (f97e0ef)
- go: upgrade Go from 1.17 to 1.18 (#2379) (d85a1db)
- include nested varying data type on neighbor messages (#2722) (426569a)
- lib/babe: implement secondary slot block production (#2260) (fcb81a3)
- lib/runtime: support Substrate WASM compression (#2213) (fd60061)
- lib/trie: atomic tracked merkle values (#2876) (1c4174c)
- lib/trie: clear fields when node is dirty (#2297) (1162828)
- lib/trie: only copy nodes when mutation is certain (#2352) (86624cf)
- lib/trie: opportunistic parallel hashing (#2081) (790dfb5)
- metrics: replace metrics port with address (breaking change) (#2382) (d2ec68d)
- pkg/scale: add
Encoder
withEncode
method (#2741) (af5c63f) - pkg/scale: add use of pkg/error Wrap for error handling (#2708) (08c4281)
- pkg/scale: encoding and decoding of maps in scale (#2894) (405db51), closes #2796
- pkg/scale: support for custom
VaryingDataType
types (#2612) (914a747) - remove uneeded runtime prefix logs (#2110) (8bd05d1)
- remove unused code (#2677) (b3698d7)
- scale: add range checks to decodeUint function (#2683) (ac700f8)
- trie: decode all inlined node variants (#2611) (b09eb07)
- trie: export
LoadFromProof
(#2455) (0b4f33d) - trie: faster header decoding (#2649) (d9460e3)
- trie: finer deep copy of nodes (#2384) (bd6d8e4)
- trie: tracking of number of descendant nodes for each node (#2378) (dfcdd3c)
- trie: use scale encoder (#2930) (e3dc108)
- wasmer/crypto: move sig verifier to crypto pkg (#2057) (dc8bbef)
- wasmer: Add
SetTestVersion
method toConfig
struct (#2823) (e5c9336) - wasmer: get and cache state version in instance context (#2747) (3fd63db)
0.6.0 (2021-12-03)
- babe: Fix extrinsic format in block. (#1530) (1a03b2a)
- ci: add missing go-version matrix to fix development branch CI (#2037) (6babe76)
- cmd/cfg: Use Babe Lead value from toml config (#2032) (06aa3e3)
- cmd/gossamer: Generate random name if --name flag not set (#1506) (3c05a88)
- confirm block import notifier is closed properly (#1736) (ad2d85e)
- docs: improve build-spec usage docs (#1706) (2e164b4)
- dot/core: Add only extrinsic during chain reorg. (#1609) (29413d4)
- dot/core: Batch process transaction message. (#1780) (0064836)
- dot/core: check transaction Validity.Propagate field to determine whether to propagate tx (#1643) (81f23cc)
- dot/core: Fix handle transaction message test. (#1607) (58b8725)
- dot/network, lib/grandpa: fix handshake decoding and grandpa message handler sigabort (#1631) (887f72c)
- dot/network, lib/grandpa: fix node sync, improve devnet finality (bcc7935)
- dot/network: add nil checks in connManager (#2069) (7f9c042)
- dot/network: Check for size when decoding leb128. (#1634) (d082b9e)
- dot/network: check if peer supports protocol (#1617) (6bf66a4)
- dot/network: decrease DHT find peers interval for gssmr nodes (#1703) (08516a0)
- dot/network: fix bugs in notifications protocol handlers; add metrics for inbound/outbound streams (#2010) (8c2993d)
- dot/network: fix dht connection on discovery on devnet (#2059) (da065b8)
- dot/network: fix discovery between gossamer nodes (#1594) (f4c79d3)
- dot/network: fix justification request at head logic (#1510) (98d1413)
- dot/network: fix memory allocations with
sizedBufferPool
(#1963) (e0b126b) - dot/network: Fix missing digest in header (#2092) (21ea85e)
- dot/network: Fix notification handshake and reuse stream. (#1545) (a632dc4)
- dot/network: fix receiving notifications messages from substrate peers (#1517) (fdf3c53)
- dot/network: fix stream manager tests (#1683) (e02eca4)
- dot/network: implement a handshake timeout (#1615) (87c2f63)
- dot/network: Implement time based handle transaction (#1942) (dd08424)
- dot/network: move low reputation peer removal from network ConnManager to peer scoring logic (dot/peerstate) (#2068) (ac16285), closes #2039
- dot/network: Return on EOF error while reading stream. (#1733) (f447eac)
- dot/network: split stored streams and handshakeData into inbound and outbound (#1553) (637050b)
- dot/network: update notificationsProtocol handshakeData to sync.Map (#1492) (22f7269)
- dot/node: Start websocket server only with
--ws
flag (#1671) (6ecef3b) - dot/state, lib/babe, lib/trie: improve syncing between gossamer authority nodes (#1613) (ca99fbf)
- dot/state, lib/grandpa: update justification and SignedVote handling in database (#1682) (bbdcd6f)
- dot/state,dot/network: improve memory usage when syncing (#1491) (3b2ad8d)
- dot/state: add StorageState Lock/Unlock API for usage by babe and sync (#1700) (3c22ace)
- dot/state: fix deadlock, fixes bootstrap syncing (#1959) (dd80c09)
- dot/state: fix usage of trie.Snapshot (#1489) (3880a40)
- dot/state: track runtime per-block, fix runtime upgrades differing between forks (#1638) (e133884)
- dot/state: update
*state.BlockState.AddBlockToBlockTree
to store block inunfinalisedBlocksMap
(#2006) (55d997f) - dot/sync: add nil header checks (#2099) (a7d4be0)
- dot/sync: fix block request and response logic (#1907) (9c6283e)
- dot/sync: fix creating block response, fixes node sync between gossamer nodes (#1572) (1328c80)
- dot/telemetry: refactor telemetry to reduce CPU usage (#1597) (bc31ac7)
- dot/types: *types.Body to be of type []types.Extrinsic (#1807) (4c09715)
- dot/types: fix max value for digest (#1687) (48405e7)
- dot: fix
TestNewNode
(#2070) (42908d0) - fix edit link (#1507) (5089327)
- fix Kusama sync; add storageState lock in core.HandleTransactionMessage (#1783) (1d688e4)
- lib/babe, lib/runtime/wasmer: fixes for v0.9.8+ runtime (#2075) (2f9f80c)
- lib/babe: add
--babe-lead
flag, update epoch handling logic (#1895) (7abcce6) - lib/babe: add pre-runtime digest before calling initialize_block (#1581) (c1b26d3)
- lib/babe: always use 2/3 of slot to produce block, re-add potentially valid txs to queue (#1679) (cf93ad3)
- lib/babe: call AddBlock in BABE synchronously (#1585) (86acc43)
- lib/babe: fix BABE state storing after building block (#1536) (1a3dea2)
- lib/babe: fix err log (#1801) (a96f06a)
- lib/babe: fix setting first slot of network, fix loading BABE epoch params (#1640) (5c3dbfe)
- lib/babe: fix timing for transition between epochs (#1636) (57027db)
- lib/blocktree: fix blocktree bug (#2060) (c17b53a)
- lib/blocktree: fix potential nil pointer dereference in
HighestCommonAncestor
, corehandleBlocksAsync
(#1993) (f7f4463) - lib/blocktree: fix setting leaves after blocktree pruning (#1605) (58c0854)
- lib/blocktree: removes the inconsistency to choose a deepest leaf (#2094) (43d68e3)
- lib/crypto/ed25519: update ed25519 to use go-schnorrkel bip39 derivation (#1488) (dfb95d2)
- lib/genesis: Update missing and incorrect fields in genesis file. (#1681) (8207704)
- lib/grandpa: fix grandpa stall and various bugs (#1708) (67c93f4)
- lib/grandpa: fix grandpa vote message switch (#2095) (461890c)
- lib/grandpa: fix threshold checking to be strictly greater than 2/3 (#1891) (66ffe51)
- lib/grandpa: use
defaultGrandpaInterval
if not set, fixes error on startup (#1982) (75627b5) - lib/runtime/life: remove import C from life (#1923) (ed507d2)
- lib/runtime: update HOST_API_TEST_RUNTIME_URL to reference specific commit (#1885) (666ed06)
- log-levels: do not ignore configuration file log levels (#2016) (80879b2)
- pending bubble hidden after block included (#1592) (5826322)
- persist node name (#1543) (88b88f2)
- pprof: only run pprof service if enabled (#2073) (55669c5)
- release: Trigger release when pushed to main branch. (#1566) (d445c97)
- rpc/subscription: subscribe runtime version notify when version changes (#1686) (9a76d39)
- Staging CI workflow (#2034) (84ec792)
- trie: memory leak fix in
lib/trie
(#2009) (0ad5eb7) - update deprecated package (#1603) (f195204)
- update go-schnorrkel version (#1557) (b86c7ff)
- update gssmr genesis to use pallet_babe::SameAuthoritiesForever (#1696) (fb0a751)
- update HOST_API_TEST_RUNTIME_URL (#1898) (2ef59a8)
- utils: create a specific folder for database (#1598) (8c67795)
- add --chain dev option (#1561) (04a2969)
- Add properties and chainId on build-spec command (#1520) (b18290c)
- cmd: implement import-runtime subcommand (#1483) (d82b2da)
- cmd/gossamer: implement --telemetry-url parameter (#1890) (b202e89), closes #1502
- cmd: implement offline pruning of state trie (#1564) (af9c925)
- devnet: Local Gossamer Devnet (#2008) (a520001)
- dot/network, lib/grandpa: request justification on receiving NeighbourMessage, verify justification on receipt (#1529) (e1f9f42)
- dot/network: Add cache for network message. (#1511) (accaf69)
- dot/network: add propagate return bool to messageHandler func type to determine whether to propagate message or not (#1555) (0d6f488)
- dot/network: implement persistent peers functionality (#1512) (7850532)
- dot/network: implement streamManager to cleanup not recently used streams (#1611) (ba861bf)
- dot/network: request block justifications when near head (#1499) (ae7012b)
- dot/peerset: Implement peer scoring (#1791) (1c989ad)
- dot/rpc/modules: add
system_addReservedPeer
andsystem_removeReservedPeer
RPC call (#1712) (dba5922) - dot/rpc: Add
system_localListenAddresses
RPC call (#1689) (c981d2e) - dot/rpc: Implement
childstate_getKeys
rpc call (#1800) (9b2f41e) - dot/rpc: implement sync_state_genSyncSpec RPC call (#1827) (2186caf)
- dot/state: implement online pruning of historical state tries (#1596) (3eb9399)
- dot/sync: implement codeSubstitutes (#1635) (d87aaeb)
- dot/telemetry: Implement basic telemetry connection (#1497) (fcb4159)
- dot/telemetry: Added connection retry (#1904) (579a791)
- dot/telemetry: Added more telemetry messages in grandpa client (#2043) (2e57d15), closes #1841 #1842
- dot/telemetry: implement notify.finalized telemetry interface (#1877) (de1a60d)
- dot/telemetry: implement substrate_number_leaves metrics (#1926) (69823c0)
- dot/telemetry: implement telemetry message network_state (#1618) (a81844e)
- flags: read log levels from flags (#1953) (9694e46)
- implement ext_default_child_storage_storage_kill_version_2 (#1799) (c2908ae)
- implement ext_offchain_index_set_version_1 for wasmer runtime (#1739) (96c30a6)
- lib/babe: add check of types.ConfigData.SecondarySlots for disabling secondary verification (#1910) (cd27ae4)
- lib/grandpa: fully verify justifications using GrandpaState (#1544) (028d25e)
- lib/grandpa: Include equivocatory nodes while creating justification (#1911) (aca86b6)
- lib/grandpa: send NeighbourMessage to peers (#1558) (322ccf9)
- lib/runtime/wasmer: implement ext_default_child_storage_storage_kill_version_3 (#1878) (a719a60)
- lib/runtime/wasmer: implement ext_offchain_local_storage_version_1 (#1821) (0f63b17)
- lib/runtime: Implement
ext_offchain_http_request_add_header_version_1
host function (#1994) (0a30b3d) - lib/runtime: Implement
ext_offchain_http_request_start_version_1
host function (#1947) (974b1fc) - lib/runtime: Implement
trie_blake2_256_verify_proof
host function (#1920) (506565d) - lib/trie: Implement
verify_proof
function (#1883) (67bb5ef) - lib/trie: Implement limit for trie.ClearPrefix (#1905) (becec9e)
- lib/trie: Parallel hash trie. (#1657) (22827e7)
- pprof: Pprof HTTP server service (#1991) (ce24ea9)
- rpc/subscription: implement state_unsubscribeStorage (#1574) (7574f10)
- rpc: Implement
childstate_getChildStorage
RPC call (#1832) (3d949f2) - rpc: Implement
childstate_getStorageHash
RPC call (#1805) (e539bd3) - rpc: Implement
childstate_getStorageSize
RPC call (#1810) (a04deb6) - rpc: Implement
payment_queryInfo
RPC call (#1826) (7a5deec) - rpc: Implement
state_getReadProof
rpc call (#1768) (865f80f) - runtime: implement custom logging handler that print function name (#1825) (2b1276d)
- telemetry: send telemetry messages when GRANDPA receieves commit or vote messages (#2015) (7bf40e1), closes #1840 #1839 #1838
- telemetry: send txpool.import telemetry msg (#1966) (ffc81bf)