Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encointer Runtime #17

Closed
wants to merge 426 commits into from
Closed

Conversation

pifragile
Copy link
Contributor

As Encointer is a system chain on Kusama, we suggest to include its runtime in this repo along the other system chains.

bkchr and others added 30 commits November 8, 2020 22:18
* Start with something

* Whatever

* Update

* MOARE

* Make cumulus-network compile and tests work

* Update more and fixes

* More stuff

* More fixes

* Make collator build

* Make test almost work

* Remove contracts runtime

* More test work

* Make service compile

* Fix test-service

* Fix test client

* More fixes

* Fix collator test

* Fix network tests (again)

* Make everything compile, finally

* Fix tests

* Update to latest masters

* Remove ignore

* Switch to different branch in polkadot for now

* Update reference

* Make it compile with latest changes

* Update collator/src/lib.rs

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>

* Update to latest upstream

* Update to latest master

* Fix test

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Switch to polkadot master branch

* Fix compilation
…ows#214)

* test

* switch to branch

* Use modified.

* Use sp_externalities environmental primitives

* Change to latest no_std version, add missing host function boilerplate.

* remove comment (was used for debugging).

* fixes

* with_externalities factor

* Read merged change from overlay.
* Integrate DMP into collation

* Integrate processed_downward_messages as well
* Add --raw flag to export-genesis-state

* Switch export-genesis-wasm to hex by default

Also add --raw flag. This makes it similar to `export-genesis-state`.
This is mostly a copy of the predating version with exception of some
renaming and alterations (e.g. the message handler takes an inbound
downward message by value, not by reference).
…ment (polkadot-fellows#227)

* Start with something

* Whatever

* Update

* MOARE

* Make cumulus-network compile and tests work

* Update more and fixes

* More stuff

* More fixes

* Make collator build

* Make test almost work

* Remove contracts runtime

* More test work

* Make service compile

* Fix test-service

* Fix test client

* More fixes

* Fix collator test

* Fix network tests (again)

* Make everything compile, finally

* Fix tests

* Write test that should fail

* Add `WaitOnRelayChainBlock`

* Update git versions

* Make it all work

* Update logging

* Switch to provided method for pushing an extrinsic

* Try to debug CI

* Aaaa

* Only use Debug

* Updates

* Use native execution to hopefully make CI happy...
* Update polkadot to 982c9e

* Fix tests in collator-network
* update cumulus to latest polkadot

* s/Trait/Config

To be more consistent with the new naming.

* Update Cargo.lock

* fix network tests
…ws#252)

* Update parachain registration script to new extrinsic

* Update parachain registration script
* plumb polkadot_client into Collator

* plumb para_id into Collator

* promote retrieve_dmq_contents to a method

* remove the retrieve_dmq_contents closure
* Upgdate to latest polkadot & substrate

* Fix code formatting (cargo fmt)

* Fix unit tests
* HRMP message ingestion

* Plumb hrmp_watermark to build_collation

* Plumb hrmp_watermark to ValidationResult

* Plumb hrmp outbound messages

* Implement message-broker part of HRMP

* Kill UPWARD_MESSAGES as well

Otherwise, they will get resent each block

* Add sudo versions for easier testing

* Remove the xcmp module

Not useful for the moment

* Doc for HRMP message handler

* Estimate the weight upper bound for on_finalize

* Remove a redundant type annotation

* fix spelling of a method

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Deabbreviate dmp and hrmp in the message ingestion type

* Don't use binary_search since it's broken by a following rotate

Instead use the linear search. We can afford linear search here since
due to limited scalability of HRMP we can only have at most a couple of
dozens of channels.

* Fix the watermark

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* initial mock

* integrate xcm-handler into runtime

* expose xcm send error

* oops

* better comment
* The problem in the nutshell

* Make it compile

* make tests pass

* Update the parachain-upgrade module

* Fix collator tests

Co-authored-by: Bastian Köcher <git@kchr.de>
* Update

* Update the chain specs

* Update to latest master & master

* add current tick bootnodes

* Update again

* Add track bootnodes

* add trick and track bootnodes

* Update the chain specs

* Update

Co-authored-by: Erin Grasmick <erin@parity.io>
* upgrade to latest polkadot

* ss58 in tests

* format

* removed unused import
* Update to latest Substrate & Polkadot

* Update the chain specs

* Update polkadot properly...

* Update chainspecs again...

* Again...
* Wait for block import in parachain consensus

There was a bug in the parachain consensus that when importing a relay
chain block that sets a new best parachain block, but the required
parachain block was not yet imported. This pr fixes this by waiting for
the block to be imported.

* Finish docs
OverOrion and others added 14 commits June 15, 2023 09:08
* polkadot update v0.9.42

* followups

* backup

* 1 warning left

* move to WasmExecutor::builder() instead off the deprecated new() function

* update pallets

* fixup! followups

* fixup! followups

* fixup! followups
…kadot-fellows#189)

* gha: bump docker/setup-buildx-action

* gha: bump docker/build-push-action

* gha: remove deprecated set-output command

* gha: bump Swatinem/rust-cache

* gha: bump actions/cache

* gha: bump docker/login-action

* gha remove always true step
* bend pallet deps to new release with migrations

* bump minor revision
* first attempt

* fmt

* tx fee rpc fixes

* fix benchmarks build

* missing pallet integrations for benchmarks

* taplo fmt

* fix benchmakr build and add that build to CI

* srtool stable

* fix try-runtime

* fix and rerun benchmarks
@brenzi
Copy link
Contributor

brenzi commented Aug 8, 2023

We suggest to use this PR to initiate the discussion about including Encointer in the fellowship repo. @joepetrowski suggested that this may be a good time, arguing that Polkadot is one "system" and that system chains, including Encointer, should be under the same roof.
So, even if this PR doesn't yet pass all the checks, please let us know what you think about the general idea

Encointer has a runtime upgrade ready to be submitted with the next system chain upgrade on Kusama (currently in testing on rococo). If possible, it would be released in this repo already. Otherwise we'd still like to join the next runtime upgrade whitelisting batch.

@bkchr
Copy link
Contributor

bkchr commented Aug 14, 2023

I think generally this is a good idea!

How many of the encointer devs are part of the fellowship? It will also work without them being part of the fellowship, but having some idea what you approve (when it comes to future upgrades) sounds like a good idea.

@brenzi
Copy link
Contributor

brenzi commented Aug 15, 2023

currently no developers of encointer are in the fellowship. But if this will be merged, it sounds like a good idea to have a competent representation. Based on contributions to encointer, I guess 3 devs would qualify: @clangenb, @pifragile and myself. not sure if we need all 3 in the fellowship. Let's discuss this

@clangenb
Copy link
Contributor

I would be happy to join the fellowship!

@bkchr
Copy link
Contributor

bkchr commented Aug 16, 2023

Fellowship is open to everyone, especially for getting into rank 1. I think the best would be that the ones of you that want to join to create some kind of list of work they have done and then reach out to me.

@gilescope
Copy link
Contributor

Should it be in a separate top level common-good dir rather than the system-parachains dir? (then again we define system chains now as anything with a para id of less than 2000)

@brenzi
Copy link
Contributor

brenzi commented Sep 8, 2023

No strong preferences here.

system chains: sounds more like unopinionated necessities which would otherwise be part of the relaychain but are parachains for scalability reasons only (however, the discussion around a DEX on the asset hub shows that there won't be a clear line here)

Encointer is certainly opinionated, but like system chains, its utility is non-excludable, so the term common-good fits nicely.

On a more visionary note: Unlike current other system chains, Encointer would most certainly not be part of the relaychain otherwise. If Encointer weren't a parachain, it would more likely be an alternative relay-chain with personhood-based consensus than become part of Kusama or Polkadot relay chain

@joepetrowski
Copy link
Contributor

joepetrowski commented Sep 8, 2023

Should it be in a separate top level common-good dir rather than the system-parachains dir? (then again we define system chains now as anything with a para id of less than 2000)

No, some logic is either part of the Polkadot system (protocol) or it's not. No "common good" chains. Whether it's in the Relay Chain or a parachain or parathread etc. is really not relevant except in configuration.

@gilescope
Copy link
Contributor

Ok systems-parachains it is.

@brenzi
Copy link
Contributor

brenzi commented Oct 9, 2023

After fellowship has accepted RFC22 we will follow up on this PR soon:

  • publish all dependency crates to crates.io
  • update tomls here

@pifragile
Copy link
Contributor Author

Closing in favor of #80

@pifragile pifragile closed this Jan 9, 2024
fellowship-merge-bot bot pushed a commit that referenced this pull request Jan 10, 2024
<!-- Remember that you can run `/merge` to enable auto-merge in the PR
-->

In fulfillment of
[RFC22](https://github.com/polkadot-fellows/RFCs/blob/main/text/0022-adopt-encointer-runtime.md),
this PR adds the encointer runtime.

replacing #17 

notes
* this runtime shall enable async backing at the conservative 12s block
time ("Phase 1" in Santi's tutorial). in a subsequent step we shall set
target block rate of 6s
* We used the same upstream dependency versions like the other system
chains on master
* The PR includes the runtime's commit history for reference
* strictly using published crates.io dependencies

---------

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Cecile Tonglet <cecile@parity.io>
Co-authored-by: Sergei Shulepov <sergei@parity.io>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Joshy Orndorff <JoshOrndorff@users.noreply.github.com>
Co-authored-by: Shaun Wang <spxwang@gmail.com>
Co-authored-by: Andrew Jones <ascjones@gmail.com>
Co-authored-by: Vincent Geddes <vincent.geddes@hey.com>
Co-authored-by: Sebastian Thiel <sebastian.thiel@icloud.com>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: Gavin Wood <gavin@parity.io>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Amar Singh <asinghchrony@protonmail.com>
Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Co-authored-by: clangenb <37865735+clangenb@users.noreply.github.com>
Co-authored-by: Christian Langenbacher <clangenb+gh@protonmail.ch>
Co-authored-by: anizeani <36300021+anizeani@users.noreply.github.com>
Co-authored-by: mosonyi <mosonyi@esix.hu>
Co-authored-by: NicJak <56108218+NicJak@users.noreply.github.com>
Co-authored-by: pifragile <pigu@bluewin.ch>
Co-authored-by: Joakim Nyman <Joakim.nyman86@gmail.com>
Co-authored-by: Kutsal Kaan Bilgin <kutsalbilgin@gmail.com>
Co-authored-by: Paulo Martins <paulormart@users.noreply.github.com>
Co-authored-by: tugy <33746108+tugytur@users.noreply.github.com>
Co-authored-by: Milos Kriz <82968568+miloskriz@users.noreply.github.com>
Co-authored-by: Szilárd Parrag <szilard.parrag@gmail.com>
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.