feat: initialize Kurdistan SDK - independent fork of Polkadot SDK
This commit is contained in:
@@ -0,0 +1,529 @@
|
||||
# Changelog
|
||||
|
||||
The format is based on [Keep a Changelog].
|
||||
|
||||
[Keep a Changelog]: http://keepachangelog.com/en/1.0.0/
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 2.0.1-> 3.0.0 - Apollo 14
|
||||
|
||||
Most notably, this is the first release of the new FRAME (2.0) with its new macro-syntax and some changes in types, and
|
||||
pallet versioning. This release also incorporates the faster and improve version 2.0 of the `parity-scale-codec` and
|
||||
upgraded dependencies all-around. While the `FinalityTracker` pallet has been dropped, this release marks the first
|
||||
public appearance of a few new pallets, too;Bounties, Lottery, Tips (extracted from the `Treasury`-pallet, see #7536)
|
||||
and Merkle-Mountain-Ranges (MMR).
|
||||
|
||||
On the client side, the most notable changes are around the keystore, making it async and switching to a different
|
||||
signing model allowing for remote-signing to be implemented; and various changes to improve networking and light-client
|
||||
support, like adding the Grandpa warp sync request-response protocol (#7711).
|
||||
|
||||
_Contracts_: Please note that the contracts pallet _is not part_ of this release. The pallet is not yet ready and will
|
||||
be released separately in the coming weeks. The currently released contracts pallet _is not compatible_ with the new
|
||||
FRAME, thus if you need the contracts pallet, we recommend you wait with the upgrade until it has been released, too.
|
||||
### Upgrade instructions
|
||||
|
||||
Not too much has changed on the top and API level for developing Substrate between 2.0 and 3.0. The easiest and quickest
|
||||
path for upgrading is just to take the latest node-template and try applying your changes to it:
|
||||
1. take a diff between 2.0 and your changes
|
||||
2. store that diff
|
||||
3. remove everything, copy over the 3.0 node-template
|
||||
4. try re-applying your diff, manually, a hunk at a time.
|
||||
|
||||
If that doesn't work for you, we are working on an in-depth-guide for all major changes that took place and how you need
|
||||
to adapt your code for it. [You can find the upgrade guide under `docs/` in the
|
||||
repo](https://github.com/paritytech/substrate/blob/master/docs/Upgrading-2.0-to-3.0.md), if you have further questions
|
||||
or problem, please [feel free to ask in the github discussion
|
||||
board](https://github.com/paritytech/substrate/discussions).
|
||||
|
||||
|
||||
#### Runtime
|
||||
|
||||
* contracts: Charge rent for code storage (#7935)
|
||||
* contracts: Emit event on contract termination (#8014)
|
||||
* Fix elections-phragmen and proxy issue (#7040)
|
||||
* Allow validators to block and kick their nominator set. (#7930)
|
||||
* Decouple Staking and Election - Part1: Support traits (#7908)
|
||||
* Introduces account existence providers reference counting (#7363)
|
||||
* contracts: Cap the surcharge reward by the amount of rent that way paid by a contract (#7870)
|
||||
* Use checked math when calculating storage size (#7885)
|
||||
* Fix clear prefix check to avoid erasing child trie roots. (#7848)
|
||||
* contracts: Collect rent for the first block during deployment (#7847)
|
||||
* contracts: Add configurable per-storage item cost (#7819)
|
||||
* babe: expose next epoch data (#7829)
|
||||
* fix : remove `_{ }` syntax from benchmark macro (#7822)
|
||||
* Define ss58 prefix inside the runtime (#7810)
|
||||
* Allow council to slash treasury tip (#7753)
|
||||
* Don't allow self proxies (#7803)
|
||||
* add a `current_epoch` to BabeApi (#7789)
|
||||
* Add `pallet` attribute macro to declare pallets (#6877)
|
||||
* Make it possible to calculate the storage root as often as you want (#7714)
|
||||
* Issue 7143 | Refactor Treasury Pallet into Bounties, Tips, and Proposals (#7536)
|
||||
* Participating in Council Governance is Free for First Time Voters and Successful Closing (#7661)
|
||||
* Streamline frame_system weight parametrization (#6629)
|
||||
* Features needed for reserve-backed stablecoins (#7152)
|
||||
* `sudo_as` should return a result (#7620)
|
||||
* More Extensible Multiaddress Format (#7380)
|
||||
* Fix `on_runtime_upgrade` weight recording (#7480)
|
||||
* Implement batch_all and update Utility pallet for weight refunds (#7188)
|
||||
* Fix wrong outgoing calculation in election (#7384)
|
||||
* Implements pallet versioning (#7208)
|
||||
* Runtime worker threads (#7089)
|
||||
* Allow `schedule_after(0, ...)` to work (#7284)
|
||||
* Fix offchain election to respect the weight (#7215)
|
||||
* Fix weight for inner call with new origin (#7196)
|
||||
* Move proxies migration (#7205)
|
||||
* Introduce `cancel_proposal` to rid us of those pesky proposals (#7111)
|
||||
|
||||
#### Client
|
||||
|
||||
* Remove backwards-compatibility networking hack (#8068)
|
||||
* Extend SS58 network identifiers (#8039)
|
||||
* Update dependencies ahead of next release (#8015)
|
||||
* Storage chains: serve transactions over IPFS/bitswap (#7963)
|
||||
* Add a send_request function to NetworkService (#8008)
|
||||
* Rename system_networkState to system_unstable_networkState (#8001)
|
||||
* Allow transaction for offchain indexing (#7290)
|
||||
* Grandpa warp sync request-response protocol (#7711)
|
||||
* Add explicit limits to notifications sizes and adjust yamux buffer size (#7925)
|
||||
* Rework priority groups, take 2 (#7700)
|
||||
* Define ss58 prefix inside the runtime (#7810)
|
||||
* Expand remote keystore interface to allow for hybrid mode (#7628)
|
||||
* Allow capping the amount of work performed when deleting a child trie (#7671)
|
||||
* RPC to allow setting the log filter (#7474)
|
||||
* Remove sc_network::NetworkService::register_notifications_protocol and partially refactor Grandpa tests (#7646)
|
||||
* minor fix and improvements on localkeystore (#7626)
|
||||
* contracts: Add `salt` argument to contract instantiation (#7482)
|
||||
* contracts: Rework contracts_call RPC (#7468)
|
||||
* Make sure to use the optimized method instead of reading the storage. (#7445)
|
||||
* WASM Local-blob override (#7317)
|
||||
* client/network: Allow configuring Kademlia's disjoint query paths (#7356)
|
||||
* client/network: Remove option to disable yamux flow control (#7358)
|
||||
* Make `queryStorage` and `storagePairs` unsafe RPC functions (#7342)
|
||||
* No longer actively open legacy substreams (#7076)
|
||||
* Make `run_node_until_exit` take a future (#7318)
|
||||
* Add an system_syncState RPC method (#7315)
|
||||
* Async keystore + Authority-Discovery async/await (#7000)
|
||||
* Fixes logging of target names with dashes (#7281)
|
||||
* Refactor CurrencyToVote (#6896)
|
||||
* client/network: Stop sending noise legacy handshake (#7211)
|
||||
|
||||
#### API
|
||||
|
||||
* pallet macro: easier syntax for `#[pallet::pallet]` with `struct Pallet<T>(_)` (#8091)
|
||||
* WasmExecutor takes a cache directory (#8057)
|
||||
* Remove PalletInfo impl for () (#8090)
|
||||
* Migrate assets pallet to new macros (#7984)
|
||||
* contracts: Make ChainExtension trait generic over the runtime (#8003)
|
||||
* Decouple the session validators from im-online (#7127)
|
||||
* Update `parity-scale-codec` to 2.0 (#7994)
|
||||
* Merkle Mountain Range pallet improvements (#7891)
|
||||
* Cleaner GRANDPA RPC API for proving finality (#7339)
|
||||
* Migrate frame-system to pallet attribute macro (#7898)
|
||||
* Introduces account existence providers reference counting (#7363)
|
||||
* contracts: Lazy storage removal (#7740)
|
||||
* contracts: Allow runtime authors to define a chain extension (#7548)
|
||||
* Define ss58 prefix inside the runtime (#7810)
|
||||
* Add `pallet` attribute macro to declare pallets (#6877)
|
||||
* Add keccak-512 to host functions. (#7531)
|
||||
* Merkle Mountain Range pallet (#7312)
|
||||
* Allow capping the amount of work performed when deleting a child trie (#7671)
|
||||
* add an upgrade_keys method for pallet-session (#7688)
|
||||
* Streamline frame_system weight parametrization (#6629)
|
||||
* Rename pallet trait `Trait` to `Config` (#7599)
|
||||
* contracts: Add `salt` argument to contract instantiation (#7482)
|
||||
* pallet-evm: move to Frontier (Part IV) (#7573)
|
||||
* refactor subtrait/elevated trait as not needed (#7497)
|
||||
* Allow BabeConsensusDataProvider fork existing chain (#7078)
|
||||
* decouple transaction payment and currency (#6912)
|
||||
* contracts: Refactor the runtime API in order to simplify node integration (#7409)
|
||||
* client/authority-discovery: Remove sentry node logic (#7368)
|
||||
* client/network: Make NetworkService::set_priority_group async (#7352)
|
||||
* *: Bump async-std to v1.6.5 (#7306)
|
||||
* babe: make secondary slot randomness available on-chain (#7053)
|
||||
* allow where clause in decl_error (#7324)
|
||||
* reschedule (#6860)
|
||||
* SystemOrigin trait (#7226)
|
||||
* permit setting treasury pallet initial funding through genesis (#7214)
|
||||
|
||||
#### Runtime Migrations
|
||||
|
||||
* Migrate assets pallet to new macros (#7984)
|
||||
* Fix elections-phragmen and proxy issue (#7040)
|
||||
* Allow validators to block and kick their nominator set. (#7930)
|
||||
* Migrate frame-system to pallet attribute macro (#7898)
|
||||
* Implements pallet versioning (#7208)
|
||||
* Move proxies migration (#7205)
|
||||
|
||||
|
||||
## 2.0.0-> 2.0.1
|
||||
|
||||
Patch release with backports to fix broken nightly builds. Namely contains backports of
|
||||
|
||||
* [#7381: Make Substrate compile with latest nightly](https://github.com/paritytech/substrate/pull/7381)
|
||||
* [#7238: Fix compilation with environmental on latest nightly](https://github.com/paritytech/substrate/pull/7238)
|
||||
* [#7395: Make benchmarks compile with latest nightly](https://github.com/paritytech/substrate/pull/7395)
|
||||
* [#7838: Fix incorrect use of syn::exports](https://github.com/paritytech/substrate/pull/7838) (partially)
|
||||
* [#7854: Update to futures 0.3.9](https://github.com/paritytech/substrate/pull/7854)
|
||||
|
||||
|
||||
## 2.0.0-rc6 -> 2.0.0 – two dot 😮
|
||||
|
||||
### Runtime
|
||||
|
||||
* Rename `ModuleToIndex` to `PalletRuntimeSetup` (#7148)
|
||||
* Bounties (#5715)
|
||||
* pallet-collective: allow customized default vote (#6984)
|
||||
* add instantiable support for treasury pallet (#7058)
|
||||
* frame/authority-discovery: Have authorities() return both current and next (#6788)
|
||||
* add generated weight info for pallet-collective (#6789)
|
||||
* Support Staking Payout to Any Account (#6832)
|
||||
* Time-delay proxies (#6770)
|
||||
* Refcounts are now u32 (#7164)
|
||||
|
||||
### Client
|
||||
|
||||
* Rename `inspect-key` to `inspect` (#7160)
|
||||
* Send import notification always for re-orgs (#7118)
|
||||
* Allow remotes to not open a legacy substream (#7075)
|
||||
* Fix `storage::read` (#7084)
|
||||
* Support hex encoded secret key for `--node-key` (#7052)
|
||||
* Update the service tasks Grafana dashboard (#7038)
|
||||
* manual seal is now consensus agnostic (#7010)
|
||||
* Move subcommands from sc-cli to nodes (#6948)
|
||||
* Implement request-responses protocols (#6634)
|
||||
* fix bench db wipe (#6965)
|
||||
* Fix benchmark read/write key tracker for keys in child storages. (#6905)
|
||||
* *: Update to next libp2p version 0.24.0 (#6891)
|
||||
|
||||
### API
|
||||
|
||||
* grandpa-rpc: use FinalityProofProvider to check finality for rpc (#6215)
|
||||
* pow: replace the thread-base mining loop with a future-based mining worker (#7060)
|
||||
* Tracing for wasm with bridging to native (#6916)
|
||||
* Frame-support storage: make iterations and translate consistent (#5470)
|
||||
* pow: support uniform tie breaking in fork choice (#7073)
|
||||
* Make decoding of `compact<perthing>` saturating instead of invalid (#7062)
|
||||
* Set reserved nodes with offchain worker. (#6996)
|
||||
* client/*: Treat protocol name as str and not [u8] (#6967)
|
||||
* Add a `LightSyncState` field to the chain spec (#6894)
|
||||
* *: Update to next libp2p version 0.24.0 (#6891)
|
||||
|
||||
### Runtime Migrations
|
||||
|
||||
* Time-delay proxies (#6770)
|
||||
|
||||
|
||||
## 2.0.0-rc5 -> 2.0.0-rc6 – Rock Hyrax
|
||||
|
||||
### Runtime
|
||||
|
||||
* Custom Codec Implementation for NPoS Election (#6720)
|
||||
* Successful `note_imminent_preimage` is free (#6793)
|
||||
* pallet-democracy use of weightinfo (#6783)
|
||||
* Update Balances Pallet to use `WeightInfo` (#6610)
|
||||
* pallet-evm: add builtin support for the four basic Ethereum precompiles (#6743)
|
||||
* Allow `PostDispatchInfo` to disable fees (#6749)
|
||||
* pallet-evm: add support for tuple-based precompile declarations (#6681)
|
||||
* grandpa: allow noting that the set has stalled (#6725)
|
||||
|
||||
#### Client
|
||||
|
||||
* Merge Subkey into sc-cli (#4954)
|
||||
* RpcHandlers Refactorings (#6846)
|
||||
* client/authority-discovery: Introduce AuthorityDiscoveryService (#6760)
|
||||
* Implement tracing::Event handling & parent_id for spans and events (#6672)
|
||||
* Move to upstream wasmtime, refactor globals snapshot (#6759)
|
||||
* Revalidate transactions only on latest best block (#6824)
|
||||
* Allow task manager to have children (#6771)
|
||||
* client/network: Expose DHT query duration to Prometheus (#6784)
|
||||
* client/network: Add peers to DHT only if protocols match (#6549)
|
||||
* Name all the tasks! (#6726)
|
||||
* Child nodes can be handled by adding a child `TaskManager` to the parent's `TaskManager` (#6771)
|
||||
|
||||
### API
|
||||
|
||||
* pow: add access to pre-digest for algorithm verifiers (#6900)
|
||||
* babe, aura, pow: only call check_inherents if authoring version is compatible (#6862)
|
||||
* Implement 'transactional' annotation for runtime functions. (#6763)
|
||||
* seal: Change prefix and module name from "ext_" to "seal_" for contract callable functions (#6798)
|
||||
* Add Subscription RPC for Grandpa Finality (#5732)
|
||||
* seal: Fix and improve error reporting (#6773)
|
||||
* Allow blacklisting blocks from being finalized again after block revert (#6301)
|
||||
* BABE slot and epoch event notifications (#6563)
|
||||
* Add `memory-tracker` feature to `sp-trie` to fix wasm panic (#6745)
|
||||
|
||||
## 2.0.0-rc4 -> 2.0.0-rc5 – River Dolphin
|
||||
|
||||
### Runtime
|
||||
|
||||
* Support using system storage directly for EVM balance and nonce (#6659)
|
||||
* Properly filter out duplicate voters in elections. (#6693)
|
||||
* Treasury burning can be directed (#6671)
|
||||
* identity: Don't let subs be re-registered (#6667)
|
||||
* Regression test to ensure we don't break deterministic builds in wasm (#6597)
|
||||
* allow to specify schedule time as a relative value (#6578)
|
||||
* Make signature batching use specialized methods (#6616)
|
||||
* Rename `CheckEra` to `CheckMortality` (#6619)
|
||||
* Add `WeightInfo` to all pallets with benchmarks. (#6575)
|
||||
* Don't require module name in inherents (#6576)
|
||||
* pallet-evm: return Ok(()) when EVM execution fails (#6493)
|
||||
* Make the encoded-Call Vec<u8> explicitly so in metadata (#6566)
|
||||
* Allow specify schedule dispatch origin (#6387)
|
||||
* pallet-evm: customizable chain id (#6537)
|
||||
* Refactor as_sub to make things clearer. (#6503)
|
||||
|
||||
### Client
|
||||
|
||||
* Update wasmtime to (almost) latest master (#6662)
|
||||
* Update to latest sysinfo prevents leaking fd-handlers (#6708)
|
||||
* Tracing values (#6679)
|
||||
* Graceful shutdown for the task manager (#6654)
|
||||
* Update `substrate-networking` Grafana dashboard (#6649)
|
||||
* *: Update to libp2p v0.21.1 (#6559)
|
||||
* Send Status message on all newly-opened legacy substreams (#6593)
|
||||
* babe: report equivocations (#6362)
|
||||
* Support synching of blocks that are not `new_best` (#6508)
|
||||
* Remove the service, replacing it with a struct of individual chain components (#6352)
|
||||
* Fix tx-pool returning the same transaction multiple times (#6535)
|
||||
|
||||
### API
|
||||
|
||||
* Better handling of stable-only build (#6569)
|
||||
* Remove the service builder (#6557)
|
||||
* seal: Prevent contracts from going below subsistence (#6623)
|
||||
* seal: Rework contracts API (#6573)
|
||||
* Make evm errors public (#6598)
|
||||
* Add log rotation (#6564)
|
||||
* decl_module! macro: use 'frame_system' instead of `system` as default ident (#6500)
|
||||
* Restrict `Protected` to some heap types. (#6471)
|
||||
|
||||
## 2.0.0-rc3 -> 2.0.0-rc4 (Rhinoceros)
|
||||
|
||||
### Runtime
|
||||
|
||||
* Staking Payout Creates Controller (#6496)
|
||||
* `pallet-scheduler`: Check that `when` is not in the past (#6480)
|
||||
* Fix `sp-api` handling of multiple arguments (#6484)
|
||||
* Fix issues with `Operational` transactions validity and prioritization. (#6435)
|
||||
* pallet-atomic-swap: generalized swap action (#6421)
|
||||
* Avoid multisig reentrancy (#6445)
|
||||
* Root origin use no filter by default. Scheduler and Democracy dispatch without asserting BaseCallFilter (#6408)
|
||||
* Scale and increase validator count (#6417)
|
||||
* Pallet: Atomic Swap (#6349)
|
||||
* Restrict remove_proxies (#6383)
|
||||
* Stored call in multisig (#6319)
|
||||
* Allow Sudo to do anything (#6375)
|
||||
* vesting: Force Vested Transfer (#6368)
|
||||
* Add events for balance reserve and unreserve functions (#6330)
|
||||
* Introduce frozen indices. (#6307)
|
||||
|
||||
### Client
|
||||
|
||||
* client/network/service: Add primary dimension to connection metrics (#6472)
|
||||
* Fix Babe secondary plain slots claiming (#6451)
|
||||
* add network propagated metrics (#6438)
|
||||
* client/authority-discovery: Compare PeerIds and not Multihashes (#6414)
|
||||
* Update sync chain info on own block import (#6424)
|
||||
* Remove --legacy-network-protocol CLI flag (#6411)
|
||||
* Runtime interface to add support for tracing from wasm (#6381)
|
||||
* Remove penalty on duplicate Status message (#6377)
|
||||
* Fix the broken weight multiplier update function (#6334)
|
||||
* client/authority-discovery: Don't add own address to priority group (#6370)
|
||||
* Split the service initialisation up into separate functions (#6332)
|
||||
* Fix transaction pool event sending (#6341)
|
||||
* Add a [prefix]_process_start_time_seconds metric (#6315)
|
||||
* new crate sc-light (#6235)
|
||||
* Allow adding a prefix to the informant (#6174)
|
||||
|
||||
### API
|
||||
|
||||
* seal: Remove ext_dispatch_call and ext_get_runtime_storage (#6464)
|
||||
* seal: Refactor ext_gas_price (#6478)
|
||||
* Implement nested storage transactions (#6269)
|
||||
* Allow empty values in the storage (#6364)
|
||||
* add system_dryRun (#6300)
|
||||
* Introduce in-origin filtering (#6318)
|
||||
* add extend_lock for StorageLock (#6323)
|
||||
* Deprecate FunctionOf and remove its users (#6340)
|
||||
* transaction-pool: expose blocking api for tx submission (#6325)
|
||||
|
||||
|
||||
## 2.0.0-rc2 -> 2.0.0-rc3
|
||||
|
||||
### Runtime
|
||||
|
||||
* Introduce stacked filtering (#6273)
|
||||
* Allow "pure" proxied accounts (#6236)
|
||||
* Allow over-weight collective proposals to be closed (#6163)
|
||||
* Fix Election when ForceNone V1 (#6166)
|
||||
|
||||
### Client
|
||||
|
||||
* Make transaction pool prune transactions only of canonical blocks (#6123)
|
||||
* Rename all the election operations (#6245)
|
||||
* Sentry nodes and validator nodes also imply reserved (#6251)
|
||||
* Fix peerset not filtering incoming connections in reserved-only (#6249)
|
||||
* Use Subscription Manager from `jsonrpc-pubsub` (#6208)
|
||||
* Add a Substrate networking Grafana dashboard template (#6171)
|
||||
* Add subkey inspect-node-key (#6153)
|
||||
|
||||
## 2.0.0-rc1 -> 2.0.0-rc2
|
||||
|
||||
(nothing of note)
|
||||
|
||||
## 2.0.0-alpha.8 -> 2.0.0-rc1
|
||||
|
||||
### Runtime
|
||||
|
||||
* Allow operational recovery path if on_initialize use fullblock. (#6089)
|
||||
* Maximum extrinsic weight limit (#6067)
|
||||
|
||||
### Client
|
||||
|
||||
* Add JSON format to import blocks and set it as default (#5816)
|
||||
* Upgrade to libp2p v0.19 - Changes the default PeerId representation (#6064)
|
||||
|
||||
|
||||
## 2.0.0-alpha.7 -> 2.0.0-alpha.8
|
||||
|
||||
**License Changed** From this release forward, the code is released under a new – more relaxed – license scheme: Client
|
||||
(`sc-*`) is released under "GPL 3.0 or newer with the Classpath Exception", while primitives, FRAME, the pallets, utils
|
||||
and test-utils are released under "Apache 2.0". More details in the [Relax licensing scheme
|
||||
PR](https://github.com/paritytech/substrate/pull/5947).
|
||||
|
||||
### Runtime
|
||||
|
||||
* Democracy weight (#5828)
|
||||
* Make `Digest` support `StorageAppend` (#5922)
|
||||
|
||||
### Client
|
||||
|
||||
* Meter block import results via prometheus (#6025)
|
||||
* Added RuntimePublic for ecdsa public key. (#6029)
|
||||
* Benchmarks for elections-phragmen pallet (#5845)
|
||||
* Monitor transactions rejected from the pool as invalid (#5992)
|
||||
* client/network: Remove default Kademlia DHT in favor of per protocol DHT (#5993)
|
||||
* Allow passing multiple --log CLI options (#5982)
|
||||
* client: Replace `unsafe_rpc_expose` with an `RpcMethods` enum (#5729)
|
||||
|
||||
## 2.0.0-alpha.6 -> 2.0.0-alpha.7
|
||||
|
||||
### Runtime
|
||||
|
||||
* Use `storage::append` in the implementation of the storage types (#5889)
|
||||
* pallet-sudo: Store `DispatchResult` in `Sudid` event (#5804)
|
||||
* Enable Offchain Equalise (#5683)
|
||||
* Add support for custom runtime upgrade logic (#5782)
|
||||
* Require `fn` token in `decl_storage` `get` (#5717)
|
||||
* Child trie api changes BREAKING (#4857)
|
||||
* Pass max-total to RewardRemainder on end_era (#5697)
|
||||
* Transaction versioning in the RuntimeVersion (#5582)
|
||||
* emit TipClosed event on success tip payout (#5656)
|
||||
|
||||
### Client
|
||||
|
||||
* Adds `export-state` subcommand (#5842)
|
||||
* Drop ClientProvider (#5823)
|
||||
* Move spawning tasks from thread pools to Service's TaskManager for block importing (#5647)
|
||||
* Reputation penalty for sending empty block response (#5814)
|
||||
* Move sc-client into sc-service (#5502)
|
||||
* Use new block requests protocol (#5760)
|
||||
* Fix leak in stream notifications (#5739)
|
||||
* network: Only insert global addresses into the DHT. (#5735)
|
||||
* enum Pays for PaysFee (#5733)
|
||||
* Migrate away from `SimpleDispatchInfo` (#5686)
|
||||
* Child trie api changes BREAKING (#4857)
|
||||
* subkey: compute and inspect a moduleid (#5676)
|
||||
* Listen on ipv6 by default as well (#5677)
|
||||
* Adjustments to Kademlia-related metrics (#5660)
|
||||
* client/authority-discovery: Allow to be run by sentry node (#5568)
|
||||
* Add alternative RPC methods to system_networkState (#5643)
|
||||
* Several tweaks to networking Prometheus metrics (#5636)
|
||||
* Use a Kademlia instance per `ProtocolId`. (#5045)
|
||||
* Report tasks metrics to Prometheus (#5619)
|
||||
|
||||
### API
|
||||
|
||||
* Child trie api changes BREAKING (#4857)
|
||||
* Pass max-total to RewardRemainder on end_era (#5697)
|
||||
* Implement iter for doublemap (#5504)
|
||||
|
||||
## 2.0.0-alpha.5 -> 2.0.0-alpha.6
|
||||
|
||||
### Runtime
|
||||
|
||||
* Unsigned Validation best practices (#5563)
|
||||
* Generate Unit Tests for Benchmarks (#5527)
|
||||
* Mandate weight annotation (#5357)
|
||||
* Make Staking pallet using a proper Time module. (#4662)
|
||||
* Pass transaction source to validate_transaction (#5366)
|
||||
* on_initialize return weight consumed and default cost to default DispatchInfo instead of zero (#5382)
|
||||
|
||||
### Client
|
||||
|
||||
* Add new RPC method to get the chain type (#5576)
|
||||
* Reuse wasmtime instances, the PR (#5567)
|
||||
* Prometheus Metrics: Turn notifications_total counter into notifications_sizes histogram (#5535)
|
||||
* Make verbosity level mandatory with telemetry opt (#5057)
|
||||
* Additional Metrics collected and exposed via prometheus (#5414)
|
||||
* Switch to new light client protocol (#5472)
|
||||
* client/finality-grandpa: Instrument until-imported queue (#5438)
|
||||
* Batch benchmarks together with `*` notation. (#5436)
|
||||
* src/service/src/builder: Fix memory metric exposed in bytes not KiB (#5459)
|
||||
* Make transactions and block announces use notifications substre… (#5360)
|
||||
* Adds state_queryStorageAt (#5362)
|
||||
* Offchain Phragmén BREAKING. (#4517)
|
||||
* `sc_rpc::system::SystemInfo.impl_version` now returns the full version (2.0.0-alpha.2-b950f731c-x86_64-linux-gnu)
|
||||
instead of the short version (1.0.0) (#5271)
|
||||
|
||||
### API
|
||||
|
||||
* Unsigned Validation best practices (#5563)
|
||||
* Split the Roles in three types (#5520)
|
||||
* Pass transaction source to validate_transaction (#5366)
|
||||
* on_initialize return weight consumed and default cost to default DispatchInfo instead of zero (#5382)
|
||||
|
||||
|
||||
## 2.0.0-alpha.4 -> 2.0.0-alpha.5
|
||||
|
||||
### Runtime
|
||||
|
||||
* pallet-evm: configurable gasometer config (#5320)
|
||||
* Adds new event phase `Initialization` (#5302)
|
||||
|
||||
## 2.0.0-alpha.3 -> 2.0.0-alpha.4
|
||||
|
||||
### Runtime
|
||||
|
||||
* Move runtime upgrade to `frame-executive` (#5197)
|
||||
* Split fees and tips between author and treasury independently (#5207)
|
||||
* Refactor session away from needless double_maps (#5202)
|
||||
* Remove `secp256k1` from WASM build (#5187)
|
||||
* Introduce default-setting prime for collective (#5137)
|
||||
* Adds `vested_transfer` to Vesting pallet (#5029)
|
||||
* Change extrinsic_count to extrinsic_index in pallet-utility (#5044)
|
||||
|
||||
### Client
|
||||
|
||||
* client/finality-grandpa: Add Prometheus metrics to GossipValidator (#5237)
|
||||
* removes use of sc_client::Client from node-transaction-factory (#5158)
|
||||
* removes use of sc_client::Client from sc_network (#5147)
|
||||
* Use CLI to configure max instances cache (#5177)
|
||||
* client/service/src/builder.rs: Add build_info metric (#5192)
|
||||
* Remove `substrate-ui.parity.io` from CORS whitelist (#5142)
|
||||
* removes use of sc_client::Client from sc-rpc (#5063)
|
||||
* Use 128mb for db cache default (#5134)
|
||||
* Drop db-cache default from 1gig to 32mb (#5128)
|
||||
* Add more metrics to prometheus (#5034)
|
||||
|
||||
### API
|
||||
|
||||
* Produce block always on updated transaction pool state (#5227)
|
||||
* Add `ext_terminate` (#5234)
|
||||
* Add ext_transfer call (#5169)
|
||||
* ChainSpec trait (#5185)
|
||||
* client/authority-discovery: Instrument code with Prometheus (#5195)
|
||||
* Don't include `:code` by default in storage proofs (#5179)
|
||||
* client/network-gossip: Merge GossipEngine and GossipEngineInner (#5042)
|
||||
* Introduce `on_runtime_upgrade` (#5058)
|
||||
@@ -0,0 +1,114 @@
|
||||
<!-- markdown-link-check-disable -->
|
||||
# Security Policy
|
||||
|
||||
Parity Technologies is committed to resolving security vulnerabilities in our software quickly and carefully. We take
|
||||
the necessary steps to minimize risk, provide timely information, and deliver vulnerability fixes and mitigations
|
||||
required to address security issues.
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Security vulnerabilities in Parity software should be reported by email to security@parity.io. If you think your report
|
||||
might be eligible for the Parity Bug Bounty Program, your email should be sent to bugbounty@parity.io.
|
||||
|
||||
Your report should include the following:
|
||||
|
||||
- your name
|
||||
- description of the vulnerability
|
||||
- attack scenario (if any)
|
||||
- components
|
||||
- reproduction
|
||||
- other details
|
||||
|
||||
Try to include as much information in your report as you can, including a description of the vulnerability, its
|
||||
potential impact, and steps for reproducing it. Be sure to use a descriptive subject line.
|
||||
|
||||
You'll receive a response to your email within two business days indicating the next steps in handling your report. We
|
||||
encourage finders to use encrypted communication channels to protect the confidentiality of vulnerability reports. You
|
||||
can encrypt your report using our public key. This key is [on MIT's key
|
||||
server](https://pgp.mit.edu/pks/lookup?op=get&search=0x5D0F03018D07DE73) server and reproduced below.
|
||||
|
||||
After the initial reply to your report, our team will endeavor to keep you informed of the progress being made towards a
|
||||
fix. These updates will be sent at least every five business days.
|
||||
|
||||
Thank you for taking the time to responsibly disclose any vulnerabilities you find.
|
||||
|
||||
## Responsible Investigation and Reporting
|
||||
|
||||
Responsible investigation and reporting includes, but isn't limited to, the following:
|
||||
|
||||
- Don't violate the privacy of other users, destroy data, etc.
|
||||
- Don’t defraud or harm Parity Technologies Ltd or its users during your research; you should make a good faith effort
|
||||
to not interrupt or degrade our services.
|
||||
- Don't target our physical security measures, or attempt to use social engineering, spam, distributed denial of service
|
||||
(DDOS) attacks, etc.
|
||||
- Initially report the bug only to us and not to anyone else.
|
||||
- Give us a reasonable amount of time to fix the bug before disclosing it to anyone else, and give us adequate written
|
||||
warning before disclosing it to anyone else.
|
||||
- In general, please investigate and report bugs in a way that makes a reasonable, good faith effort not to be
|
||||
disruptive or harmful to us or our users. Otherwise your actions might be interpreted as an attack rather than an
|
||||
effort to be helpful.
|
||||
|
||||
## Bug Bounty Program
|
||||
|
||||
Our Bug Bounty Program allows us to recognize and reward members of the Parity community for helping us find and address
|
||||
significant bugs, in accordance with the terms of the Parity Bug Bounty Program. A detailed description on eligibility,
|
||||
rewards, legal information and terms & conditions for contributors can be found on [our
|
||||
website](https://paritytech.io/bug-bounty.html).
|
||||
|
||||
|
||||
## Plaintext PGP Key
|
||||
|
||||
```
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
BZYiIhW7GG4ozvKDqyNm4eg=
|
||||
=yKcB
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
```
|
||||
@@ -0,0 +1,172 @@
|
||||
---
|
||||
title: Style Guide for Rust in Substrate
|
||||
---
|
||||
|
||||
Where possible these styles are enforced by settings in `rustfmt.toml` so if you run `cargo fmt` then you will adhere to
|
||||
most of these style guidelines automatically.
|
||||
|
||||
# Code Formatting
|
||||
|
||||
- Indent using tabs.
|
||||
- Lines should be longer than 100 characters long only in exceptional circumstances and certainly no longer than 120.
|
||||
For this purpose, tabs are considered 4 characters wide.
|
||||
- Indent levels should be greater than 5 only in exceptional circumstances and certainly no greater than 8. If they are
|
||||
greater than 5, then consider using `let` or auxiliary functions in order to strip out complex inline expressions.
|
||||
- Never have spaces on a line prior to a non-whitespace character
|
||||
- Follow-on lines are only ever a single indent from the original line.
|
||||
|
||||
```rust
|
||||
fn calculation(some_long_variable_a: i8, some_long_variable_b: i8) -> bool {
|
||||
let x = some_long_variable_a * some_long_variable_b
|
||||
- some_long_variable_b / some_long_variable_a
|
||||
+ sqrt(some_long_variable_a) - sqrt(some_long_variable_b);
|
||||
x > 10
|
||||
}
|
||||
```
|
||||
|
||||
- Indent level should follow open parens/brackets, but should be collapsed to the smallest number of levels actually
|
||||
used:
|
||||
|
||||
```rust
|
||||
fn calculate(
|
||||
some_long_variable_a: f32,
|
||||
some_long_variable_b: f32,
|
||||
some_long_variable_c: f32,
|
||||
) -> f32 {
|
||||
(-some_long_variable_b + sqrt(
|
||||
// two parens open, but since we open & close them both on the
|
||||
// same line, only one indent level is used
|
||||
some_long_variable_b * some_long_variable_b
|
||||
- 4 * some_long_variable_a * some_long_variable_c
|
||||
// both closed here at beginning of line, so back to the original indent
|
||||
// level
|
||||
)) / (2 * some_long_variable_a)
|
||||
}
|
||||
```
|
||||
|
||||
- `where` is indented, and its items are indented one further.
|
||||
- Argument lists or function invocations that are too long to fit on one line are indented similarly to code blocks, and
|
||||
once one param is indented in such a way, all others should be, too. Run-on parameter lists are also acceptable for
|
||||
single-line run-ons of basic function calls.
|
||||
|
||||
```rust
|
||||
// OK
|
||||
fn foo(
|
||||
really_long_parameter_name_1: SomeLongTypeName,
|
||||
really_long_parameter_name_2: SomeLongTypeName,
|
||||
shrt_nm_1: u8,
|
||||
shrt_nm_2: u8,
|
||||
) {
|
||||
...
|
||||
}
|
||||
|
||||
// NOT OK
|
||||
fn foo(really_long_parameter_name_1: SomeLongTypeName, really_long_parameter_name_2: SomeLongTypeName,
|
||||
shrt_nm_1: u8, shrt_nm_2: u8) {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
```rust
|
||||
{
|
||||
// Complex line (not just a function call, also a let statement). Full
|
||||
// structure.
|
||||
let (a, b) = bar(
|
||||
really_long_parameter_name_1,
|
||||
really_long_parameter_name_2,
|
||||
shrt_nm_1,
|
||||
shrt_nm_2,
|
||||
);
|
||||
|
||||
// Long, simple function call.
|
||||
waz(
|
||||
really_long_parameter_name_1,
|
||||
really_long_parameter_name_2,
|
||||
shrt_nm_1,
|
||||
shrt_nm_2,
|
||||
);
|
||||
|
||||
// Short function call. Inline.
|
||||
baz(a, b);
|
||||
}
|
||||
```
|
||||
|
||||
- Always end last item of a multi-line comma-delimited set with `,` when legal:
|
||||
|
||||
```rust
|
||||
struct Point<T> {
|
||||
x: T,
|
||||
y: T, // <-- Multiline comma-delimited lists end with a trailing ,
|
||||
}
|
||||
|
||||
// Single line comma-delimited items do not have a trailing `,`
|
||||
enum Meal { Breakfast, Lunch, Dinner };
|
||||
```
|
||||
|
||||
- Avoid trailing `;`s where unneeded.
|
||||
|
||||
```rust
|
||||
if condition {
|
||||
return 1 // <-- no ; here
|
||||
}
|
||||
```
|
||||
|
||||
- `match` arms may be either blocks or have a trailing `,` but not both.
|
||||
- Blocks should not be used unnecessarily.
|
||||
|
||||
```rust
|
||||
match meal {
|
||||
Meal::Breakfast => "eggs",
|
||||
Meal::Lunch => { check_diet(); recipe() },
|
||||
// Meal::Dinner => { return Err("Fasting") } // WRONG
|
||||
Meal::Dinner => return Err("Fasting"),
|
||||
}
|
||||
```
|
||||
|
||||
# Style
|
||||
|
||||
- Panickers require explicit proofs they don't trigger. Calling `unwrap` is discouraged. The exception to this rule is
|
||||
test code. Avoiding panickers by restructuring code is preferred if feasible.
|
||||
|
||||
```rust
|
||||
let mut target_path =
|
||||
self.path().expect(
|
||||
"self is instance of DiskDirectory;\
|
||||
DiskDirectory always returns path;\
|
||||
qed"
|
||||
);
|
||||
```
|
||||
|
||||
- Unsafe code requires explicit proofs just as panickers do. When introducing unsafe code, consider trade-offs between
|
||||
efficiency on one hand and reliability, maintenance costs, and security on the other. Here is a list of questions
|
||||
that may help evaluating the trade-off while preparing or reviewing a PR:
|
||||
- how much more performant or compact the resulting code will be using unsafe code,
|
||||
- how likely is it that invariants could be violated,
|
||||
- are issues stemming from the use of unsafe code caught by existing tests/tooling,
|
||||
- what are the consequences if the problems slip into production.
|
||||
|
||||
# Manifest Formatting
|
||||
|
||||
> **TLDR** You can use the CLI tool [Zepter](https://crates.io/crates/zepter) to format the files: `zepter format
|
||||
> features`
|
||||
|
||||
Rust `Cargo.toml` files need to respect certain formatting rules. All entries need to be alphabetically sorted. This
|
||||
makes it easier to read them and insert new entries. The exhaustive list of rules is enforced by the CI. The general
|
||||
format looks like this:
|
||||
|
||||
- The feature is written as a single line if it fits within 80 chars:
|
||||
```toml
|
||||
[features]
|
||||
default = ["std"]
|
||||
```
|
||||
|
||||
- Otherwise the feature is broken down into multiple lines with one entry per line. Each line is padded with one tab and
|
||||
no trailing spaces but a trailing comma.
|
||||
```toml
|
||||
[features]
|
||||
default = [
|
||||
"loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong",
|
||||
# Comments go here as well ;)
|
||||
"std",
|
||||
]
|
||||
```
|
||||
@@ -0,0 +1,7 @@
|
||||
# Upgrade path for you building on Substrate
|
||||
|
||||
## master
|
||||
- crate rename has been fixed `sp-application-crypto` (was `sc-application-crypto`);
|
||||
`.maintain/rename-crates-for-2.0.sh` has been updated accordingly, you can use it to upgrade to latest naming
|
||||
convention
|
||||
- crates have been renamed, run `bash .maintain/rename-crates-for-2.0.sh`
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 466 KiB |
@@ -0,0 +1,65 @@
|
||||
# Substrate Node Template Release Process
|
||||
|
||||
## This release process has to be run in a github checkout Substrate directory with your work committed into
|
||||
`https://github.com/pezkuwichain/pezkuwi-sdk/`, because the build script will check the existence of your current git commit
|
||||
ID in the remote repository.
|
||||
|
||||
Assume you are in root directory of Substrate. Run:
|
||||
|
||||
```bash
|
||||
cd scripts/ci/ ./node-template-release.sh <output tar.gz file>
|
||||
```
|
||||
|
||||
## Expand the output tar gzipped file and replace files in current Substrate Node Template by running the following
|
||||
command.
|
||||
|
||||
```bash
|
||||
# This is where the tar.gz file uncompressed cd substrate-node-template # rsync with force copying. Note the
|
||||
slash at the destination directory is important rsync -avh * <destination node-template directory>/ # For dry-running
|
||||
add `-n` argument # rsync -avhn * <destination node-template directory>/
|
||||
```
|
||||
|
||||
The above command only copies existing files from the source to the destination, but does not delete files/directories
|
||||
that are removed from the source. So you need to manually check and remove them in the destination.
|
||||
|
||||
## There is a `Cargo.toml` file in the root directory. Inside, dependencies are listed form and linked to a certain git
|
||||
commit in Substrate remote repository, such as:
|
||||
|
||||
```toml
|
||||
toml sp-core = { version = "7.0.0", git = "https://github.com/paritytech/substrate.git", rev =
|
||||
"de80d0107336a9c7a2efdc0199015e4d67fcbdb5", default-features = false }
|
||||
```
|
||||
|
||||
e will update each of them to link to the Rust [crate registry](https://crates.io/). After confirming the versioned
|
||||
package is published in the crate, the above will become:
|
||||
|
||||
```toml
|
||||
[workspace.dependencies] sp-core = { version = "7.0.0", default-features = false }
|
||||
```
|
||||
|
||||
P.S: This step can be automated if we update `node-template-release` package in `scripts/ci/node-template-release`.
|
||||
|
||||
## Once the `Cargo.toml` is updated, compile and confirm that the Node Template builds. Then commit the changes to a new
|
||||
branch in [Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template), and make a PR.
|
||||
|
||||
> Note that there is a chance the code in Substrate Node Template works with the linked Substrate git commit but not
|
||||
with published packages due to the latest (as yet) unpublished features. In this case, rollback that section of the
|
||||
Node Template to its previous version to ensure the Node Template builds.
|
||||
|
||||
## Once the PR is merged, tag the merged commit in master branch with the version number `vX.Y.Z+A` (e.g. `v3.0.0+1`)
|
||||
The `X`(major), `Y`(minor), and `Z`(patch) version number should follow Substrate release version. The last digit is any
|
||||
significant fixes made in the Substrate Node Template apart from Substrate. When the Substrate version is updated, this
|
||||
digit is reset to 0.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- Running the script `./node-template-release.sh <output tar.gz file>`, after all tests passed successfully, seeing the
|
||||
following error message:
|
||||
|
||||
```
|
||||
thread 'main' panicked at 'Creates output file: Os { code: 2, kind: NotFound, message: "No such file or directory"
|
||||
}', src/main.rs:250:10 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
```
|
||||
|
||||
This is likely due to that your output path is not a valid `tar.gz` filename or you don't have write permission to the
|
||||
destination. Try with a simple output path such as `~/node-tpl.tar.gz`.
|
||||
@@ -0,0 +1,20 @@
|
||||
# Rustdocs Release Process
|
||||
|
||||
There is [a script in place](../.maintain/rustdocs-release.sh) to manage the deployment of Substrate rustdocs at
|
||||
https://docs.pezkuwichain.io/substrate, which is pushing the rustdocs file in `gh-pages` branch of
|
||||
https://github.com/paritytech/substrate.
|
||||
|
||||
The documentation at the top of the `rustdocs-release.sh` explains most of the mechanics of the script.
|
||||
|
||||
Manage the rustdocs deployment with one of the following commands.
|
||||
|
||||
```bash
|
||||
# Deploy rustdocs of `monthly-2021-10` tag
|
||||
.maintain/rustdocs-release.sh deploy monthly-2021-10
|
||||
|
||||
# In addition to the above, the `latest` symlink will point to this version of rustdocs
|
||||
.maintain/rustdocs-release.sh deploy -l monthly-2021-10
|
||||
|
||||
# Remove the rustdocs of `monthly-2021-10` from `gh-pages`.
|
||||
.maintain/rustdocs-release.sh remove monthly-2021-10
|
||||
```
|
||||
Reference in New Issue
Block a user