Commit Graph
38 Commits
Author SHA1 Message Date
Liu-Cheng Xu 968795db28 Expose build_system_rpc_future and TransactionPoolAdapator in sc-service (#14238)
* Make block sync service customizable

This change allows user to have their own network block logic, for example, we'd like to disable
the builtin block sync service when using another syncing approach.

* Remove unnecessary Box

* Revert network_block

* Expose build_system_rpc_future() and TransactionPoolAdaptor

* fmt
2023-05-31 15:27:06 +01:00
Liu-Cheng Xu 58d1d9e117 Expose new_full_parts_with_genesis_builder from sc-service (#13539)
I forgot this in https://github.com/paritytech/substrate/pull/12291
2023-03-06 21:39:32 +01:00
Liu-Cheng Xu 1d5ea509d0 Support the subscription of every imported block (#13372)
* Support the subscription of every import block

Close #13315

* Clean up any closed block import notification sinks

* Apply review suggestions

* Nit

* `every_block_import_notification_sinks` -> `every_import_notification_sinks`

* Apply review suggestions
2023-02-27 09:02:54 +00:00
Liu-Cheng Xu 1db2dc5b36 Enrich TooManySiblingBlocks error info (#13052) 2023-01-03 23:00:10 +01:00
Liu-Cheng Xu b92aa3dbdc Support custom genesis block (#12291)
* Set genesis block data using the built genesis block

* Make resolve_state_version_from_wasm a separate function and some small refactorings

Useful for the commit following.

* Introduce trait BuildGenesisBlock

Substrate users can use this trait to implement their custom genesis block when constructing the
client.

* Make call_executor test compile

* cargo +nightly fmt --all

* Fix test

* Remove unnecessary clone

* FMT

* Apply review suggestions

* Revert changes to new_full_client() and new_full_parts() signature

* Remove needless `Block` type in `resolve_state_version_from_wasm`
2022-12-19 15:26:31 +01:00
Liu-Cheng Xu 9d41de645f Add missing CountedStorageMap in pallet::storage error info (#12356) 2022-09-27 20:14:01 +00:00
Liu-Cheng Xu 9bbf8efd02 Only log when the transaction is actually to be propagated (#12158)
The logging before is confusing as it says Propagating but it's not in fact when gossip_enabled is
false. Now it's also consistent with `propagate_transactions` below.
2022-08-31 22:31:05 +02:00
Liu-Cheng XuandBastian Köcher f44e4b3d48 Enrich the sync log on handling the block request (#11747)
Add more info to the log to help debug the issue like
https://github.com/paritytech/substrate/issues/11732.

Co-authored-by: Bastian Köcher <info@kchr.de>
2022-07-28 17:31:47 +02:00
Liu-Cheng Xu 6b1e871137 Expose ValidatedTransaction from transaction pool (#11588)
This is required to make a tx pool wrapper for some custom transaction validation, specificially
required to make a wrapper around the `LocalTransactionPool` implementation (https://github.com/subspace/subspace/blob/f54881a9b5/crates/subspace-service/src/pool.rs#L232-L269).

Related: https://github.com/paritytech/substrate/discussions/11520
2022-06-03 14:33:59 +02:00
Liu-Cheng Xu 001ade9c5d Make the generic of CliConfiguration explicit (#11223)
Othewise the compiler will complain if someone passes something that
implements `CliConfiguration<DVC>` but `DVC` is not the default `()`.
2022-04-14 11:18:54 +02:00
Liu-Cheng Xu 47f96b6584 Remove unused parent_hash in OverlayedChanges::into_storage_changes (#11011)
Ref https://github.com/paritytech/substrate/pull/10922#issuecomment-1064258443

CC @cheme
2022-03-10 19:35:11 +01:00
Liu-Cheng Xuandparity-processbot 2ebbbc1dc0 Companion for Substrate#10915 (#1051)
* Companion for Substrate#10915

* Fix compile

* Fix compile

* update lockfile for {"polkadot"}

Co-authored-by: parity-processbot <>
2022-03-05 14:23:58 +00:00
Liu-Cheng Xuandparity-processbot 496c1f953b Companion for Substrate#10915 (#5033)
* Companion for Substrate#10915

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-03-05 13:47:20 +00:00
Liu-Cheng Xu 6f59a8b183 Fix the undeterministic storage proof recorded for the same execution (#10915)
* Add a test case for the determinism of recorded proof

* Replace HashMap with BTreeMap for the actual proof records

* cargo +nightly fmt --all

* Store the trie nodes in BTreeSet for StorageProof

* Nit

* Revert the BTreeMap changes and sort when converting to storage proof

* Remove PartialEq from StorageProof

* Remove unnecessary change

* Add `compare` method to StorageProof

* FMT

* Dummy change to trigger CI

* Use `BTreeSet` for StorageProof and keep using `Vec` for CompactProof

* Update comment on `iter_nodes`

* Revert `PartialEq` removal
2022-03-05 07:51:19 +00:00
Liu-Cheng Xu ac992ae18b Derive TypeInfo for OpaqueExtrinsic (#10504) 2021-12-17 09:43:51 +00:00
Liu-Cheng Xu 472e29f843 Use intra doc in network-gossip (#10501)
* Use intra doc in network-gossip

So that we could jump to the definition easily.

* cargo +nightly fmt --all
2021-12-16 23:19:30 +00:00
Liu-Cheng Xu 986372bb68 Specify edition 2021 in .rustfmt.yml (#760)
This PR is mainly to fix the error `[E0670]: async fn is not permitted in the 2015 edition` when
using Vim along with rust-analyzer, it also removes an unused dependency from parachain-template.

Ref: https://github.com/rust-analyzer/rust-analyzer/issues/1959
2021-11-16 15:12:50 +01:00
Liu-Cheng Xu 63d2ff0c36 Add serde support for Slot type (#10204)
Add serde support for the `Slot` type as we'd like to use it directly in our RPC.
2021-11-07 23:29:51 +00:00
Liu-Cheng Xu c30233ab13 Remove useless WeightInfo in pallet-offences (#10114) 2021-10-29 14:42:51 +02:00
Liu-Cheng XuandBastian Köcher 00973f5b62 Clean up sc-peerset (#9806)
* Clean up sc-peerset

* cargo +nightly fmt --all

* Nit

* Nit

* .

* Nit

* .

* Apply suggestions from code review

* .

* Update client/peerset/src/peersstate.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2021-10-01 09:43:55 +00:00
Liu-Cheng XuandAndré Silva f9de0040c9 Companion for Substrate#9867 (#3938)
* Companion for Substrate#9867

* Fix finality_target_with_fallback()

* update substrate

Co-authored-by: André Silva <andrerfosilva@gmail.com>
2021-09-29 14:16:50 +00:00
Liu-Cheng Xu 802afa9f22 Return target_hash for finality_target instead of an Option (#9867)
* .

cargo +nightly fmt --all

* Fix test

* Simplify test

* They are already imported

* Needless clone()
2021-09-29 13:03:09 +00:00
Liu-Cheng Xu 7f2fab263b Fix bin-substrate toml (#3939) 2021-09-27 06:05:06 +00:00
Liu-Cheng Xu 2562f8c65e Clean up sc-network (#9761)
* Clean up sc-network

- Avoid using clone() for the Copy type `PeerId`.
- Use `find_map` for `filter_map` and `next`.
- Use `Self`.

* More on Copy types

* Cargo +nightly fmt --all

* More ..

* fmt

* Revert vec![default_notif_handshake_message]
2021-09-13 20:11:29 +02:00
Liu-Cheng Xu f9699db41c Use the precise number of approvals when constructing RawOrgin::Members (#9647)
* Use the precise number of approvals when constructing RawOrgin::Members

Close #9604

* Split out tests.rs

* Add a test for dispatching with yes votes instead of voting threshold

* Simplify tests

- Also add copyright header.

* Remove unused hex_literal::hex in collective tests

* Extract the helper function record()

* Try fixing ci

* Add a test case with only two votes

* Nit

* Fix typo
2021-09-13 03:12:37 +00:00
Liu-Cheng Xu f0dbe25e56 Expose UnsafeRpcError (#9515) 2021-08-07 18:38:14 +00:00
Liu-Cheng Xu 6b75ec92a7 More readable help for --sync option (#9441) 2021-07-27 10:43:27 +02:00
5be9b3fc76 Impl InherentDataProviderExt for more tuples (#9282)
* Impl InherentDataProviderExt for more tuples

Currently the inherent data provider only supports up to 4 entries due to the limit of
InherentDataProviderExt, which is not enough for a chain with more than 4 inherent data providers.
This patch simply impls InherentDataProviderExt for more tuples.

* Nit

* Apply suggestions from code review

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
2021-07-14 10:23:03 +00:00
Liu-Cheng Xu ff4b9c0d72 Enable colored help in CLI (#9244)
Since it's already there, why not give it a chance :P
2021-07-01 07:12:07 +00:00
Liu-Cheng XuandBastian Köcher 7e59d172b8 Add trivial improvements to transaction pool (#8572)
* Add trival improvements to transaction pool

* .

* Add trival improvements to transaction pool

* Update client/transaction-pool/graph/src/future.rs

* Update client/transaction-pool/graph/src/base_pool.rs

* Fix transaction_debug test

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2021-04-09 11:37:40 +00:00
Liu-Cheng Xu 00432a5ab7 Add some trivial improvements to primitives runtime (#8528)
* Add some trivial improvements

* Finish primitives/runtime
2021-04-05 20:20:36 +02:00
Liu-Cheng Xu ed7e485365 Simplify the code a little bit (#8295) 2021-03-09 15:51:11 +01:00
Liu-Cheng Xuandparity-processbot d353c76e26 Conpanion for Substrate#7127 (#1865)
* Conpanion for Substrate#7127

* Use sp_session::OneSessionHandler

* .

* Fix pallet_session::OneSessionHandler

* OneSessionHandler is in frame_support now

* "Update Substrate"

Co-authored-by: parity-processbot <>
2021-02-02 17:05:42 +00:00
Liu-Cheng XuandTomasz Drwięga 9904267e23 Decouple the session validators from im-online (#7127)
* Decouple the session validators from im-online

* .

* Add SessionInterface trait in im-online

Add ValidatorId in im-online Trait

Make im-online compile

Make substrate binary compile

* Fix merging issue

* Make all compile

* Fix tests

* Avoid using frame dep in primitives via pallet-session-common

* Merge ValidatorSet into SessionInterface trait

Wrap a few too long lines

Add some docs

* Move pallet-sesion-common into pallet-session

* Move SessionInterface to sp-session and impl it in session pallet

Ref https://github.com/paritytech/substrate/pull/7127#discussion_r494892472

* Split put historical::FullValidatorIdentification trait

* Fix line width

* Fix staking mock

* Fix session doc test

* Simplify <T as ValidatorIdentification<AccountId>>::ValidatorId as ValidatorId<T>

* Nits

* Clean up.

* Make it compile by commenting out report_offence_im_online bench

* Tests

* Nits

* Move OneSessionHandler to sp-session

* Fix tests

* Add some docs

* .

* Fix typo

* Rename to ValidatorSet::session_index()

* Add some more docs

* .

* Remove extra empty line

* Fix line width check

.

* Apply suggestions from code review

* Cleaup Cargo.toml

* Aura has migrated to Pallet now

Co-authored-by: Tomasz Drwięga <tomasz@parity.io>
2021-02-02 16:38:37 +00:00
Liu-Cheng Xuandparity-processbot 313d03709b Companion for Substrate#7692 (#2190)
* Companion for Substrate#7692

* "Update Substrate"

Co-authored-by: parity-processbot <>
2021-01-14 12:07:58 +00:00
Liu-Cheng XuandGuillaume Thiolliere 65569620c2 Add payment_queryFeeDetails RPC (#7692)
* Return FeeDetails in compute_fee_raw()

* Add payment_queryDetails rpc

* Simplify serde attribute a bit

* Fix line width check

* Use saturating_add()

* Move transaction payment rpc types to types.rs

* Add file header

* Fix test

* Update Cargo.lock

* Nit

* Apply the review suggestions

* .

* .

* Fix serde

* Fix rust doc

* .

* Update frame/transaction-payment/src/types.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Use NumberOrHex in fee details RPC

* Address review feedback

* Nits

* Update some docs

* Address review

* Update frame/transaction-payment/src/types.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Happy 2021

* Nit

* Address code review

* Remove needless bound

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
2021-01-14 11:43:53 +00:00
Liu-Cheng Xu 6353f8496b Use #!/usr/bin/env bash instead of #!/bin/bash (#254)
Refer to https://github.com/dylanaraps/pure-bash-bible#shebang
2018-06-27 11:40:22 +02:00
Liu-Cheng Xu 323c055d5a Use #!/usr/bin/env bash instead of #!/bin/bash (#254)
Refer to https://github.com/dylanaraps/pure-bash-bible#shebang
2018-06-27 11:40:22 +02:00