Gossamer Versions Save

🕸️ Go Implementation of the Polkadot Host

v0.9.0

2 months ago

0.9.0 (2024-3-1)

Bug Fixes

  • add a limit of number of bytes while scale decoding a slice (#3733) (5edbf89)
  • docs: Fixing link to polkadot runtime fundamentals to the right one (#3763) (a785d32)
  • don't panic if we fail to convert hex to bytes (#3734) (12234de)
  • dot/sync: execute p2p handshake when there is no target (#3695) (a9db0ec)
  • fix index out of range undeterministic error in rpc test (#3718) (d099384)
  • fix non deterministic panic during TestStableNetworkRPC integration test (#3756) (ee3d243)
  • lib/trie: use MustBeHashed for V1 trie nodes with larger storage values (#3739) (f5e48a9)
  • mocks: Set fixed version for uber mockgen in CI (#3656) (ea9877e)
  • runtime/storage: support nested storage transactions (#3670) (3e99f6d)
  • segfault on node restart (#3736) (d1ca7aa)
  • state-version: should be uint8 instead of uint32 (#3779) (c8fdb14)
  • update paseo chain spec (#3770) (6a54f28)
  • use last finalized block on startup (#3737) (c262642)

Features

  • config: dynamically set version based on environment (#3693) (5c534c9)
  • staging: Expose RPC on Westend Staging Node (#3687) (c374eaa)
  • tests/scripts: create script to retrieve trie state via rpc (#3714) (5ccea40)

v0.8.0

5 months ago

0.8.0 (2023-12-11)

Bug Fixes

  • .github/workflows: update node.js version (#3637) (619be1b)
  • babe: Add support for versioned NextConfigData decoding (#3239) (5ee3a64)
  • blockstate: if blocktree fails to search a hash in memory, load it from disk (#3059) (6442544)
  • cache slot to header data while checking BABE equivocation (#3364) (dcfa4a4)
  • chain: Fix chain=westend option (#3123) (64dbba6)
  • ci: cancel previous workflow runs (#3140) (a322a19)
  • ci: fix all Deepsource issues (#3046) (4ea0a70)
  • ci: fix broken docker build (#3231) (f796430)
  • ci: Fix staging metrics collection (#3138) (05a5c4c)
  • cli: parse module log-levels (#3285) (86c7577)
  • cmd/gossamer: embed default toml config files (#3091) (af38364)
  • cmd/gossamer: update error message (#3301) (960a9d4)
  • dot/babe: use bs.latestFinalised instead of using round/set id (#3167) (46c0ef7)
  • dot/digest: create BlockImportHandler and remove channel (#3312) (a179855)
  • dot/network: findPeers returns on timeout if a peer is found (#3001) (2a05ce7)
  • dot/network: remove maxReads limitation to read stream (#3287) (483b23f)
  • dot/state: clean up scheduled changes once a forced change is applied (#3219) (5ebec46)
  • dot/state: fix a bug in IsDescendantOf (#3125) (4fd4a89)
  • dot/state: store raw authority keys and decode when verifying block signature (#3627) (58f741d)
  • dot/sync: fix Timestamp slot must match 'CurrentSlot' while using westend spec file (#3040) (e6da01b)
  • dot/sync: Revert verify justification before importing blocks (#3615) (11b96dc)
  • dot/sync: rework on bootstrap/tip sync (#3227) (ab6650a)
  • dot/sync: use Range instead of SubChain at handleDescedingRequest (#3006) (a83c1a3)
  • dot/sync: verify justification before importing blocks (#3576) (2954fc0)
  • dot/sync: wrong error message at checkOrGetDescendantHash (#2971) (b1c6bf1)
  • dot: use tempDir in tests as base path to avoid creating dot/~ (#3363) (04514d5)
  • go.mod: Replace centrifuge/go-substrate-rpc-client dependency to timwu20/go-substrate-rpc-client temporarily to fix build (#3572) (ea49251)
  • lib/babe: Add context and additional assertion to TestBuildBlock_ok (#3101) (a9a89ed)
  • lib/babe: rewrite TestBuildBlock_failing (#3089) (28a3d0b)
  • lib/babe: use current system time to yield a new slot (#3133) (9cd6f25)
  • lib/grandpa: on verifying block justification, compare given block hash with finalised hash (#3081) (fc91843)
  • lib/grandpa: ensure finalisationEngine exits when stop channel is triggered (#3141) (d7f7c06)
  • lib/runtime: ext_default_child_storage_next_key_version_1 return None correctly (#3473) (c7d574b)
  • lib/runtime: Fix wasm error: out of bounds memory access at [#9412261](https://github.com/ChainSafe/gossamer/issues/9412261) (#3588) (ecb1ad9)
  • lib/runtime: prevents polkadot zero-address bug using sr25519_verify version 1 (#3494) (8b93d5e)
  • lib/runtime: return correct encoded value for None (#3451) (3e11bc2)
  • lib/runtime: update MaxPossibleAllocation to 2^25 (#3393) (91eabdc)
  • lib/runtime: use westend-dev spec file in TestNodeRuntime_ValidateTransaction (#3047) (043f5eb)
  • lib/trie: ClearFromChild should update parent trie (#3482) (70e2d2b)
  • lib/trie: create an empty child trie if not found (#3459) (5d68447)
  • lib/trie: record deleted Merkle values fixed (#2873) (61f0216)
  • peerset: check for incoming slot error (#2952) (a1602bc)
  • rpc-tests: Fix node port to execute tests on macOS (#3223) (f758575)
  • rpc/modules: use westend-local in TestAuthorModule_SubmitExtrinsic_invalid test (#3051) (b6429b7)
  • runtime: initialize TransactionState when creating runtime instance (#3188) (29fe7a0)
  • scale: Use *int for scale index (#3274) (9b04d30)
  • staging: fixes the staging deployment issues caused by the new cli (#3266) (1f4e786)
  • state: clarify node hashes vs merkle values (#2915) (e4033e8)
  • test/rpc: use westend-local in TestStateRPCAPI (#3049) (c57ade6)
  • tests/polkadot_js: Use westend-local to run polkadot js test suite (#3052) (2d5ead1)
  • tests/rpc: ensure new blocks are created before assert (#3042) (a116d58)
  • tests/rpc: flaky test TestChainSubscriptionRPC/chain_subscribeNewHeads (#3092) (5b56238)
  • tests/rpc: place GreaterOrEqual arguments in the correct order at chain_subscribeNewHeads test (#3137) (33bdf28)
  • tests: Export unimplemented runtime fuctions (#3461) (3e4546c)
  • trie: do not create buffer for nil child (#2928) (d70af4f)
  • wasmer: ext_storage_exists_version_1 for empty values (#2973) (059268e)

Features

  • chain: Add Westend network as command line chain option (#3103) (d9cdd45)
  • chain: remove unneeded spec files (#3086) (c76387d)
  • cli: use a single flag for log level in the CLI (#3303) (caf3ea4)
  • dot/network: introduce libp2p resource manager + prometheus metrics (#3333) (f166746)
  • dot/rpc: export block trie state entries for a block hash (#3607) (43828fe)
  • dot/rpc: implement RPC method state_queryStorageAt (#3191) (3bbdfe0)
  • dot/state: create Range to traverse the blocktree and the blocks in the disk (#2990) (4442eee)
  • dot/state: keep latest state trie in memory (#3386) (421d087)
  • dot/sync: include block origin and skip extra validation on initialSync (#3392) (8e1650e)
  • dot/sync: Remove the EndBlockHash from BlockRequestMessage (#2977) (b25e0b4)
  • internal/database: replace chaindb/badgerdb with pebbledb (#3434) (344461d)
  • introduces SaturatingAdd and SaturatingSub (#3519) (daa9e25)
  • lib/allocator: Refactor FreeingBumpHeapAllocator (#3570) (39ca47f)
  • lib/babe: Submit BABE equivocation report (#2947) (55de62e), closes #2853
  • lib/blocktree: reduce the entries in the runtimes mapping (#3151) (1a34972)
  • lib/grandpa: include t.Parallel() to all lib/grandpa tests (#2840) (5c93488)
  • lib/runtime/wasmer: report grandpa equivocations (#3007) (e63aeea)
  • lib/runtime: wazero implementation of runtime.Instance (#3279) (115d6f5)
  • lib/runtime: add extra required runtime imports for parachain validation (#3254) (dc1a521)
  • lib/runtime: Update default runtime.Instance to wazero (#3352) (308b10a)
  • pkg/scale: VaryingDataType String method (#2970) (841636e)
  • pkg/scale: Add Marshaler and Unmarshaler interfaces and functionality (#3617) (4888ce4)
  • pkg/scale: Use New() receiver function for construction of custom VaryingDataType (#3315) (9688f6c)
  • runtime/wasmer: create wrapper around wasmer.Memory (#3160) (fc1055d)
  • runtime/wasmer: write wasmer using latest wasmer version (#3168) (32f1aa8)
  • scale: add MustMarshal function (#2991) (32a80aa)
  • sync: Validate bad blocks (#3220) (0d0354b)
  • telemetry: Add scheduled and force changes telemetry metrics (#3226) (c53b1cd)
  • trie: Add trie v1 new headers support (#3295) (c30f463)
  • zombienet: Add javascript tests to zombienet testing (#3200) (aca9a5b)
  • zombienet: add zombienet testing to github workflow (#3192) (d788bd6)

Reverts

  • lib/runtime: rollback wasmer update PR[#3168](https://github.com/ChainSafe/gossamer/issues/3168) (#3264) (e7ff0cf)

v0.7.0

1 year ago

0.7.0 (2022-11-23)

Bug Fixes

  • 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 interface Version 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 and Test_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)

Features

  • 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 to 2.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 with Encode 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 to Config struct (#2823) (e5c9336)
  • wasmer: get and cache state version in instance context (#2747) (3fd63db)

v0.6.0

2 years ago

0.6.0 (2021-12-03)

Bug Fixes

  • 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 in unfinalisedBlocksMap (#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, core handleBlocksAsync (#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)

Features

  • 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 and system_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)

Reverts

  • Revert "feat(dot/rpc) implement author_hasSessionKeys RPC call (#1704)" (#1714) (65380fd), closes #1704 #1714

v0.5.0

3 years ago

v0.5.0 (2021-05-06)

Bug Fixes

  • dot/state: Update StorageState to load storage from database. (#1486)
  • dot/state: fix usage of trie.Snapshot (#1489)
  • dot/state,dot/network: improve memory usage when syncing (#1491)
  • dot/network: update notificationsProtocol handshakeData to sync.Map (#1492)
  • cmd/gossamer: Generate random name if --name flag not set (#1506)
  • dot/network: fix justification request at head logic (#1510)
  • dot/network: Add cache for network message. (#1511)
  • dot/network: fix receiving notifications messages from substrate peers (#1517)
  • dot/rpc, dot/state: state_subscribeStorage to only notify for value changes
  • lib/babe: fix BABE state storing after building block (#1536)
  • lib/babe: Fix extrinsic format in block. (#1530)
  • dot/network: Fix notification handshake and reuse stream. (#1545)
  • dot: persist node name (#1543)
  • dot/network: split stored streams and handshakeData into inbound and outbound (#1553)
  • update go-schnorrkel version (#1557)

Features

  • cmd: implement import-runtime subcommand (#1483)
  • lib/crypto: update ed25519 to use go-schnorrkel bip39 derivation (#1488)
  • dot/network: request block justifications when near head (#1499)
  • dot/telemetry: Implement basic telemetry connection (#1497)
  • dot/network: implement persistent peers functionality (#1512)
  • dot: Add properties and chainId on build-spec command (#1520)
  • dot/network, lib/grandpa: request justification on receiving NeighbourMessage, verify justification on receipt (#1529)
  • lib/grandpa: fully verify justifications using GrandpaState (#1544)
  • dot/network: add propagate return bool to messageHandler func type to determine whether to propagate message or not (#1555)
  • dot/telemetry: implement telemetry system.interval message (#1528)
  • lib/grandpa: send NeighbourMessage to peers (#1558)

Maintenance / Refactor

  • cmd: rename genesis-raw flag and files to genesis, allow raw and human-readable genesis to be passed to it (#1500)
  • docs: Docs Overhaul (#1438)
  • dot/network, lib/grandpa: update network.ConsensusMessage, add grandpa.NeighbourMessage and handle accordingly (#1519)
  • lib/grandpa: update grandpa message types to match substrate (#1534)
  • linter: change locale to UK from US (#1533)
  • dot/core, dot/state, lib/grandpa: implement GrandpaState, use in DigestHandler and grandpa.Service (#1540)
  • dot/state: create BaseState for accessing non-prefixed db keys (#1546)
  • lib/common implement MustHexToBigInt (#1547)
  • close db if node initialized check fails (#1551)

v0.4.1

3 years ago

0.4.1 (2021-04-14)

Bug Fixes

  • dot/network: fix receiving notifications messages from substrate peers (#1517) (fdf3c53)

v0.4.0

3 years ago

0.4.0 (2021-04-13)

Bug Fixes

  • dot/network: fix justification request at head logic (#1510) (98d1413)
  • cmd/gossamer: Generate random name if --name flag not set (#1506) (3c05a88)
  • fix edit link (#1507) (5089327)
  • dot/network: update notificationsProtocol handshakeData to sync.Map (#1492) (22f7269)
  • dot/state: fix usage of trie.Snapshot (#1489) (3880a40)
  • dot/state,dot/network: improve memory usage when syncing (#1491) (3b2ad8d)
  • lib/crypto/ed25519: update ed25519 to use go-schnorrkel bip39 derivation (#1488) (dfb95d2)

Features

  • dot/network: Add cache for network message. (#1511) (accaf69)
  • dot/network: implement persistent peers functionality (#1512) (7850532)
  • dot/telemetry: Implement basic telemetry connection (#1497) (fcb4159)
  • dot/network: request block justifications when near head (#1499) (ae7012b)
  • cmd: implement import-runtime subcommand (#1483) (d82b2da)

v0.3.2

3 years ago

This is a pre-release compatible with the Kusama and Polkadot networks.

New Features

  • added BestBlock bool to BlockAnnounceMessage (#1480)
  • open block announce stream and send handshake on connect (#1467)
  • implement import-state subcommand (#1455)
  • add support for submit and watch extrinisic RPC (#1415)
  • monitor and publish metrics to Prometheus. (#1437)
  • implement ext_crypto_secp256k1_ecdsa_recover_compressed_version_1 (#1442)

Improvements

  • moved websocket messages and listeners subscription package (#1459)
  • improve syncing at head (#1465)
  • start syncQueue after bootstrapping, don't run syncQueue during tests (#1446)

Bug Fixes

  • fix network grandpa protocol ID (#1466)
  • fix nested storage transactions, fixes kusama block 4939774 (#1457)
  • fix trie.NextKey case (#1463)
  • return 0 on ext_crypto_sr25519_verify_version_2 or ext_crypto_ed25519_verify_version_1 failure, fixes polkadot block 1089328 (#1458)
  • allow generic keystore type in public_keys ext functions (#1450)
  • update sign_ functs to return fixed size byte optional (#1451)
  • re-implement and fix trie.NextKey (#1449)

Testing

  • add transfer extrinsic integration test (#1448)

Maintenance

  • code coverage change from codeclimate to codecov (#1461)
  • rename ksmcc -> kusama (#1470)

v0.3.1

3 years ago

This is a pre-release compatible with the Polkadot v0.8 runtime API and the Kusama and Polkadot networks.

New Features

  • use GlobalKeystore in lib/runtime package, update crypto runtime APIs accordingly
  • add BIP39 functionality for sr25519, update crypto runtime APIs accordingly
  • implement --rewind to rewind chain to a specific block for testing
  • handle block justifications when syncing, mark block finalized when a response is received and prune blocktree
  • update system_peers RPC call to return peer info collected from network handshakes
  • implemented persistent peerstore for the network; peerstore is now saved to disk

Improvements

  • filter out local addresses from advertised addresses
  • clean up trie.Trie API; no longer returns error for cases that don't error
  • update blocktree.getNode to check leaves of blocktree first, improving CPU usage
  • improve sync queue request management
  • update network scoring so that peers with highest score are requested from first

Bug Fixes

  • fix usage of trie.Snapshot and ensure previous tries don't get modified
  • if node shuts down abnormally, causing some database info to be missing, restart chain from last finalized block
  • update ext_misc_runtime_version_version_1 to return correct Version encoding
  • fix trie.ClearPrefix and trie.GetAllKeysWithPrefix based on syncing issues
  • replace trie.NextKey in TrieState with trie.GetAllKeysWithPrefix and manual iteration for now based on syncing issues
  • fix clearing of digests before execute_block call, enabling Polkadot compatibility

Deprecated

  • deprecated the legacy runtime API (v0.6)

v0.3.0

3 years ago

This is a pre-release compatible with the Polkadot v0.8 runtime API and the Kusama network.

New Features

  • compatible with Polkadot v0.8 runtime API (go-wasmer)
  • networking up-to-date with substrate as of Feb 25 2021 (discovery, message exchanges tested and working with Kusama)
  • compatibility with polkadot.js: implement storage and chain updates via websocket; able to query blocks and state; account and extrinsic submission working within node.js
  • add preliminary support for the perlin/life wasm interpreter
  • add BABE secondary slot authorship verification
  • update BABE digests to be compatible with substrate and correctly set next epoch data

Improvements

  • merkle-patricia trie database backing refactored to store trie nodes individually in database
  • fix usage of trie node "dirty" bit, use this when writing to database
  • merkle-patricia trie refactored to allow for "versioned" trie where only updated trie nodes are copied and updated, unmodified trie nodes are no longer duplicated
  • network improvements based on CPU profiling; read/write directly to/from same stream when syncing, improve allocations
  • syncing algorithm improved to queue block data while currently processing data
  • basic scoring and pruning added to sync algorithm; don't disconnect from preferred peers

Bug Fixes

  • runtime upgrades fixed and tested with Kusama
  • runtime bug where values were not being correctly copied before placed into trie fixed
  • use __heap_base as allocator offset for runtime
  • fix BABE threshold calculation to match substrate