Giter Club home page Giter Club logo

encointer-parachain's People

Contributors

akru avatar ascjones avatar athei avatar benwhitejam avatar bkchr avatar brenzi avatar cecton avatar cheme avatar clangenb avatar coriolinus avatar danforbes avatar expenses avatar gavofyork avatar joshorndorff avatar kichjang avatar kukabi avatar maharacha avatar mosonyi avatar nuke-web3 avatar overorion avatar pepyakin avatar pifragile avatar rphmeier avatar satoshi-kusumoto avatar shaunxw avatar shawntabrizi avatar stanislav-tkach avatar thiolliere avatar tovarishfin avatar tripleight avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

encointer-parachain's Issues

Add CI

Add build/release process to github actions

linker fails when building collator

although llvm 10 is available, we get this:

  = note: /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(vpaes-x86_64-elf.o): in function `GFp_vpaes_encrypt':        
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/pregenerated/vpaes-x86_64-elf.S:607: multiple definition of `GFp_vpaes_encrypt'; /home/abr
enzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(vpaes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d107b347f459
69e/out/vpaes-x86_64-elf.S:427: first defined here                                                                                                                                  
          /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(vpaes-x86_64-elf.o): in function `GFp_vpaes_set_encrypt_key':
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/pregenerated/vpaes-x86_64-elf.S:588: multiple definition of `GFp_vpaes_set_encrypt_key'; /
home/abrenzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(vpaes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d107
b347f45969e/out/vpaes-x86_64-elf.S:408: first defined here                                                                                                                          
          /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(aes_nohw.o): in function `GFp_aes_nohw_encrypt':             
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/crypto/fipsmodule/aes/aes_nohw.c:896: multiple definition of `GFp_aes_nohw_encrypt'; /home
/abrenzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(aes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d107b347f4
5969e/out/aes-x86_64-elf.S:194: first defined here                                                                                                                                  
          /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(aes_nohw.o): in function `GFp_aes_nohw_set_encrypt_key':     
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/crypto/fipsmodule/aes/aes_nohw.c:884: multiple definition of `GFp_aes_nohw_set_encrypt_key
'; /home/abrenzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(aes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d1
07b347f45969e/out/aes-x86_64-elf.S:277: first defined here                                                                                                                          
          collect2: error: ld returned 1 exit status       

not able to send extrinsics: WASM unreachable instruction

trying to send balances.transfer

2022-02-23 13:55:20        RPC-CORE: submitAndWatchExtrinsic(extrinsic: Extrinsic): 
ExtrinsicStatus:: 1002: Verification Error: Runtime error: Execution failed: 
Other("Wasm execution trapped: wasm trap: wasm `unreachable` instruction executed\n
wasm backtrace:\n
    0: 0x23d8 - <unknown>!rust_begin_unwind\n
    1: 0x204b - <unknown>!core::panicking::panic_fmt::h8f11323637b4db3b\n
    2: 0x1c5ae1 - <unknown>!TaggedTransactionQueue_validate_transaction\n
"): RuntimeApi, Execution failed: 
Other, \"Wasm execution trapped: wasm trap: wasm `unreachable` instruction executed\\n
wasm backtrace:\\n
    0: 0x23d8 - <unknown>!rust_begin_unwind\\n
    1: 0x204b - <unknown>!core::panicking::panic_fmt::h8f11323637b4db3b\\…

implement launch-runtime (aka shell)

The initial runtime that will be registered on Kusama and then voted on to become a common-good parachain.

Unlike Statemine, the shell will not really be empty.

Implement and test “launch release” runtime with all dispatchables filtered. (With KSM as native token, but no teleport, only untrusted down-/upward reserve transfer. See #4)
The goal is to have a safe starting point where only sudo can send extrinsics, upgrade code and transfer a first stash of KSM to the parachain that can be distributed to onboard participants, so they can pay fees. Once setup, the call filters can be lifted.

CL EDIT:
I will break this task into subtasks for smaller PRs:

  • Add launch-runtime, which is the encointer-runtime without encointer pallets. #31.
  • add treasury-pallet to both runtimes. #32.
  • add utility-pallet to both runtimes. #33.
  • add call-filtering to launch-runtime #34

js/apps fails to decode MultiAddress on parachain

submitAndWatchExtrinsic(extrinsic: Extrinsic): ExtrinsicStatus:: 1002: Verification Error: Runtime error: Execution failed: ApiError(FailedToConvertParameter { function: "validate_transaction", parameter: "tx", error: Error { cause: None, desc: "Could not decode `MultiAddress`, variant doesn't exist" } }): RuntimeApi, Execution failed: ApiError, FailedToConvertParameter { function: \"validate_transaction\", parameter: \"tx\", error: Error { cause: None, desc: \"Could not decode `MultiAddress`, variant doesn't exist\" } }

As js/apps doesn't show the developer tab anymore, where custom types could be set, this issue actually blocks testing

Downward token tx: xcm destination unsupported with polkadot-v0.9.12

It turned out that the updward-/downward cross chain token tx was tested with the relay-chain being on v0.9.10 instead of v0.9.12.

With v0.9.10 it worked fine, but with v0.9.12 the transfer fails with:

Execution of an XCM message was attempted. 
XcmV2TraitsOutcome
{
  Incomplete: [
    1,000,000,000
    DestinationUnsupported
  ]
}

align-runtimes with statemine (incrementally)

I thought this will be a minor thing. However, #61 does not produce parachain blocks; hence I will merge in the statemine upgrades incrementally and test block production with each pr.

  • apply trivial changes to reduce the diff and give better overview to subsequent changes. #64
  • apply statemine xcm config (disable parachain-side teleport) #66
  • add multisig/proxy pallet and benchmark them.

upward token tx does not work with polkadot-v0.9.13

It used to work with polkadot-v0.9.10, only upgrading the Polkadot binary made this fail. Downward token tx does still work.

Observations:

  1. The xcm message reaches the relay chain, but an error Barrier is returned.
  2. There is some random account endowed on the parachain, which receives the funds that should be transferred to the relay-chain.
  3. The sender account on the parachain has the balance deducted.

Edit:

  1. I solved by using the LimitedReserveTransferAsset and set weightbound to Unlimited, if we use the XcmVersion 1, which we currently do. However, we get a new error now: UntrustedReserveLocation

parachain code upgrade fails. parachain stalls

Trying to upgrade parachain code from the relaychain like this:

image

The chain stalls:

  • chain upgrade extrinsic included in relaychain block137, parachain stalled at block60

The only suspicious line in this log to me is Collation wasn't advertised to any validator

2021-11-07 09:00:18 [Relaychain] ✨ Imported #135 (0x913d…50dc)    
2021-11-07 09:00:18 [Parachain] Starting collation. relay_parent=0x913d873349e2eab31ba4a9b1dcdfa071586effe0043a89c7e097ede6e5ff50dc at=0x2cdf37e45350944db533f8b79eef21c33cf10ba9545c8045ce43121c0c7c26bd
2021-11-07 09:00:18 [Parachain] 🙌 Starting consensus session on top of parent 0x2cdf37e45350944db533f8b79eef21c33cf10ba9545c8045ce43121c0c7c26bd    
2021-11-07 09:00:18 [Parachain] 🎁 Prepared block for proposing at 60 [hash: 0x7fa56d0a8d29ffdc4f092beed3de0b5735ed6acefa541cedb9d63ff551c2e3f7; parent_hash: 0x2cdf…26bd; extrinsics (2): [0xd1d4…3151, 0x7f34…95e5]]    
2021-11-07 09:00:18 [Parachain] 🔖 Pre-sealed block for proposal at 60. Hash now 0xaad5a477e06ffe5c95d534e5a80225d3a4fd1d41c1566165ea5afd1225848cfc, previously 0x7fa56d0a8d29ffdc4f092beed3de0b5735ed6acefa541cedb9d63ff551c2e3f7.    
2021-11-07 09:00:18 [Parachain] ✨ Imported #60 (0xaad5…8cfc)    
2021-11-07 09:00:18 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.400390625kb, storage_proof: 4.5185546875kb }
2021-11-07 09:00:18 [Parachain] Produced proof-of-validity candidate. block_hash=0xaad5a477e06ffe5c95d534e5a80225d3a4fd1d41c1566165ea5afd1225848cfc
2021-11-07 09:00:18 [Relaychain] 👴 Applying authority set change scheduled at block #131    
2021-11-07 09:00:18 [Relaychain] 👴 Applying GRANDPA set change to new set [(Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), 1), (Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), 1), (Public(439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f (5DbKjhNL...)), 1)]    
2021-11-07 09:00:20 [Parachain] 💤 Idle (0 peers), best: #59 (0x2cdf…26bd), finalized #57 (0x7c6b…5ba2), ⬇ 0 ⬆ 0    
2021-11-07 09:00:20 [Relaychain] 💤 Idle (3 peers), best: #135 (0x913d…50dc), finalized #131 (0xff7d…e43b), ⬇ 1.5kiB/s ⬆ 2.7kiB/s    
2021-11-07 09:00:24 [Relaychain] ✨ Imported #136 (0xbde0…281b)    
2021-11-07 09:00:24 [Parachain] Starting collation. relay_parent=0xbde03a3805ed05a21a62f95271ae442650372ca22abee5036b2b907a6ca5281b at=0x2cdf37e45350944db533f8b79eef21c33cf10ba9545c8045ce43121c0c7c26bd
2021-11-07 09:00:24 [Parachain] 🙌 Starting consensus session on top of parent 0x2cdf37e45350944db533f8b79eef21c33cf10ba9545c8045ce43121c0c7c26bd    
2021-11-07 09:00:24 [Parachain] 🎁 Prepared block for proposing at 60 [hash: 0xfa00818ca1c2254227d419a9787b839ab0441b925861896d60870e184b4c1d07; parent_hash: 0x2cdf…26bd; extrinsics (2): [0x90cc…c53d, 0x8719…ba41]]    
2021-11-07 09:00:24 [Parachain] 🔖 Pre-sealed block for proposal at 60. Hash now 0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105, previously 0xfa00818ca1c2254227d419a9787b839ab0441b925861896d60870e184b4c1d07.    
2021-11-07 09:00:24 [Parachain] ✨ Imported #60 (0xc844…b105)    
2021-11-07 09:00:24 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.400390625kb, storage_proof: 4.5185546875kb }
2021-11-07 09:00:24 [Parachain] Produced proof-of-validity candidate. block_hash=0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105
2021-11-07 09:00:25 [Parachain] 💤 Idle (0 peers), best: #59 (0x2cdf…26bd), finalized #57 (0x7c6b…5ba2), ⬇ 0 ⬆ 0    
2021-11-07 09:00:25 [Relaychain] 💤 Idle (3 peers), best: #136 (0xbde0…281b), finalized #132 (0xd353…671d), ⬇ 1.6kiB/s ⬆ 2.3kiB/s    
2021-11-07 09:00:30 [Relaychain] ✨ Imported #137 (0x6878…b16b)    
2021-11-07 09:00:30 [Parachain] 💤 Idle (0 peers), best: #59 (0x2cdf…26bd), finalized #58 (0x5ea3…e01a), ⬇ 0 ⬆ 0    
2021-11-07 09:00:30 [Relaychain] 💤 Idle (3 peers), best: #137 (0x6878…b16b), finalized #134 (0xd659…1cae), ⬇ 419.6kiB/s ⬆ 210.5kiB/s    
2021-11-07 09:00:35 [Parachain] 💤 Idle (0 peers), best: #59 (0x2cdf…26bd), finalized #59 (0x2cdf…26bd), ⬇ 0 ⬆ 0    
2021-11-07 09:00:35 [Relaychain] 💤 Idle (3 peers), best: #137 (0x6878…b16b), finalized #135 (0x913d…50dc), ⬇ 1.0kiB/s ⬆ 0.9kiB/s    
2021-11-07 09:00:36 [Relaychain] ✨ Imported #138 (0x53d5…948e)    
2021-11-07 09:00:36 [Parachain] Starting collation. relay_parent=0x53d5fee2bdcf9d532c7134b4915b86d79ff745b12d9be2824464bf2a6ba3948e at=0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105
2021-11-07 09:00:36 [Parachain] 🙌 Starting consensus session on top of parent 0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105    
2021-11-07 09:00:36 [Parachain] 🎁 Prepared block for proposing at 61 [hash: 0x86df83b2f389b0f33c5eb71e5cb13afd55487225d945a8fc8fe854fbb4bddca5; parent_hash: 0xc844…b105; extrinsics (2): [0x62f9…3b66, 0x9b10…dcee]]    
2021-11-07 09:00:36 [Parachain] 🔖 Pre-sealed block for proposal at 61. Hash now 0x1024b5500f8cf0f2cf07efb0b7c0bdc041ffd4fef65f4b47168dda0ce2e78547, previously 0x86df83b2f389b0f33c5eb71e5cb13afd55487225d945a8fc8fe854fbb4bddca5.    
2021-11-07 09:00:36 [Parachain] ✨ Imported #61 (0x1024…8547)    
2021-11-07 09:00:36 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.49609375kb, storage_proof: 4.4794921875kb }
2021-11-07 09:00:36 [Parachain] Produced proof-of-validity candidate. block_hash=0x1024b5500f8cf0f2cf07efb0b7c0bdc041ffd4fef65f4b47168dda0ce2e78547
2021-11-07 09:00:40 [Parachain] 💤 Idle (0 peers), best: #60 (0xc844…b105), finalized #59 (0x2cdf…26bd), ⬇ 0 ⬆ 0    
2021-11-07 09:00:40 [Relaychain] 💤 Idle (3 peers), best: #138 (0x53d5…948e), finalized #135 (0x913d…50dc), ⬇ 1.3kiB/s ⬆ 2.3kiB/s    
2021-11-07 09:00:42 [Relaychain] ✨ Imported #139 (0x5955…ebe2)    
2021-11-07 09:00:42 [Parachain] Starting collation. relay_parent=0x5955b9c5cdbf19efc9d2b1995bfef510967094e0997a46f3531e361bf984ebe2 at=0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105
2021-11-07 09:00:42 [Parachain] 🙌 Starting consensus session on top of parent 0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105    
2021-11-07 09:00:42 [Parachain] 🎁 Prepared block for proposing at 61 [hash: 0x782f3c3a5825033349ab3a3520f45da0d30c60d851bfb594c0d5c08ee34cb7d8; parent_hash: 0xc844…b105; extrinsics (2): [0xb685…a138, 0xaffa…0d71]]    
2021-11-07 09:00:42 [Parachain] 🔖 Pre-sealed block for proposal at 61. Hash now 0x87322ea5db060364f157d1b2b354cb4ddc1acc172b71412746fc34f38268954e, previously 0x782f3c3a5825033349ab3a3520f45da0d30c60d851bfb594c0d5c08ee34cb7d8.    
2021-11-07 09:00:42 [Parachain] ✨ Imported #61 (0x8732…954e)    
2021-11-07 09:00:42 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.49609375kb, storage_proof: 4.4794921875kb }
2021-11-07 09:00:42 [Parachain] Produced proof-of-validity candidate. block_hash=0x87322ea5db060364f157d1b2b354cb4ddc1acc172b71412746fc34f38268954e
2021-11-07 09:00:45 [Parachain] 💤 Idle (0 peers), best: #60 (0xc844…b105), finalized #59 (0x2cdf…26bd), ⬇ 0 ⬆ 0    
2021-11-07 09:00:45 [Relaychain] 💤 Idle (2 peers), best: #139 (0x5955…ebe2), finalized #135 (0x913d…50dc), ⬇ 1.1kiB/s ⬆ 0.6kiB/s    
2021-11-07 09:00:48 [Relaychain] ✨ Imported #140 (0xd112…7e34)    
2021-11-07 09:00:48 [Parachain] Starting collation. relay_parent=0xd11213e13d0e573bc97611f03279ca118bceaf1909a1ed37fae5926446007e34 at=0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105
2021-11-07 09:00:48 [Parachain] 🙌 Starting consensus session on top of parent 0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105    
2021-11-07 09:00:48 [Parachain] 🎁 Prepared block for proposing at 61 [hash: 0x4c634a0fbf941467fbfa950506886a46b4e46bd3f34944f5e24bf5fbec286ad3; parent_hash: 0xc844…b105; extrinsics (2): [0x37f4…1c33, 0xeff2…4dd0]]    
2021-11-07 09:00:48 [Parachain] 🔖 Pre-sealed block for proposal at 61. Hash now 0x8a0738f74492f787fb9388100d96eb184c33b345d55dcf8680c69a7008dce28b, previously 0x4c634a0fbf941467fbfa950506886a46b4e46bd3f34944f5e24bf5fbec286ad3.    
2021-11-07 09:00:48 [Parachain] ✨ Imported #61 (0x8a07…e28b)    
2021-11-07 09:00:48 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.49609375kb, storage_proof: 4.4794921875kb }
2021-11-07 09:00:48 [Parachain] Produced proof-of-validity candidate. block_hash=0x8a0738f74492f787fb9388100d96eb184c33b345d55dcf8680c69a7008dce28b
2021-11-07 09:00:50 [Parachain] 💤 Idle (0 peers), best: #60 (0xc844…b105), finalized #60 (0xc844…b105), ⬇ 0 ⬆ 0    
2021-11-07 09:00:50 [Relaychain] 💤 Idle (3 peers), best: #140 (0xd112…7e34), finalized #138 (0x53d5…948e), ⬇ 2.6kiB/s ⬆ 1.8kiB/s    
2021-11-07 09:00:54 [Relaychain] 👶 New epoch 14 launching at block 0x1295…d666 (block slot 272712009 >= start slot 272712009).    
2021-11-07 09:00:54 [Relaychain] 👶 Next epoch starts at slot 272712019    
2021-11-07 09:00:54 [Relaychain] ✨ Imported #141 (0x1295…d666)    
2021-11-07 09:00:54 [Relaychain] Advanced session window for approvals update=Advanced { prev_window_start: 8, prev_window_end: 13, new_window_start: 9, new_window_end: 14 }
2021-11-07 09:00:54 [Parachain] Starting collation. relay_parent=0x12951a7d56ad10692eea850904f330fb29157eb13ec1c10ac56985b835dad666 at=0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105
2021-11-07 09:00:54 [Parachain] 🙌 Starting consensus session on top of parent 0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105    
2021-11-07 09:00:54 [Parachain] 🎁 Prepared block for proposing at 61 [hash: 0x0ad59f76172e623e3a3384f0202a468c21a7ed2f4195ff6fd51b83ba9c2c041e; parent_hash: 0xc844…b105; extrinsics (2): [0xd945…46c6, 0x87bb…5370]]    
2021-11-07 09:00:54 [Parachain] 🔖 Pre-sealed block for proposal at 61. Hash now 0xfa51e98f55a9d3355271cc413a44e59568ce7fc9cc8bbb2af2704a3ea1b22188, previously 0x0ad59f76172e623e3a3384f0202a468c21a7ed2f4195ff6fd51b83ba9c2c041e.    
2021-11-07 09:00:54 [Parachain] ✨ Imported #61 (0xfa51…2188)    
2021-11-07 09:00:54 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.49609375kb, storage_proof: 4.4794921875kb }
2021-11-07 09:00:54 [Parachain] Produced proof-of-validity candidate. block_hash=0xfa51e98f55a9d3355271cc413a44e59568ce7fc9cc8bbb2af2704a3ea1b22188
2021-11-07 09:00:55 [Parachain] 💤 Idle (0 peers), best: #60 (0xc844…b105), finalized #60 (0xc844…b105), ⬇ 0 ⬆ 0    
2021-11-07 09:00:55 [Relaychain] 💤 Idle (3 peers), best: #141 (0x1295…d666), finalized #138 (0x53d5…948e), ⬇ 1.2kiB/s ⬆ 2.4kiB/s    
2021-11-07 09:01:00 [Relaychain] ✨ Imported #142 (0xf8b6…d982)    
2021-11-07 09:01:00 [Relaychain] Collation wasn't advertised to any validator. candidate_hash=0xcae98dd36ff35fd14f5843350997299ab471fa6012c8b4516b4ab5d0ef031796 pov_hash=0xddb03fa5cebdc555d3fc9a95e90c803a1748648cdf32e935c5388c02d937af46
2021-11-07 09:01:00 [Parachain] Starting collation. relay_parent=0xf8b69c70efd8da5971cd67b8068494080dc22df29713c780eee3141a6a7dd982 at=0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105
2021-11-07 09:01:00 [Parachain] 🙌 Starting consensus session on top of parent 0xc844a66f0856bd4a4f9441704010d76e81446203297af7b4fc73cce26045b105    
2021-11-07 09:01:00 [Parachain] 🎁 Prepared block for proposing at 61 [hash: 0x2d0e90dd586a78c962e57e130f4b0f931512631cd115eb8d30fff78091bf736f; parent_hash: 0xc844…b105; extrinsics (2): [0xe198…f133, 0xd1ea…fe5b]]    
2021-11-07 09:01:00 [Parachain] 🔖 Pre-sealed block for proposal at 61. Hash now 0xd80fc73eb07b2d36801a09af37b8a3ee5bd62419597fec72dca2524a49496c16, previously 0x2d0e90dd586a78c962e57e130f4b0f931512631cd115eb8d30fff78091bf736f.    
2021-11-07 09:01:00 [Parachain] ✨ Imported #61 (0xd80f…6c16)    
2021-11-07 09:01:00 [Parachain] PoV size { header: 0.1787109375kb, extrinsics: 2.49609375kb, storage_proof: 4.4794921875kb }
2021-11-07 09:01:00 [Parachain] Produced proof-of-validity candidate. block_hash=0xd80fc73eb07b2d36801a09af37b8a3ee5bd62419597fec72dca2524a49496c16
2021-11-07 09:01:00 [Parachain] 💤 Idle (0 peers), best: #60 (0xc844…b105), finalized #60 (0xc844…b105), ⬇ 0 ⬆ 0    
2021-11-07 09:01:00 [Relaychain] 💤 Idle (2 peers), best: #142 (0xf8b6…d982), finalized #139 (0x5955…ebe2), ⬇ 1.5kiB/s ⬆ 1.4kiB/s    
2021-11-07 09:01:05 [Parachain] 💤 Idle (0 peers), best: #60 (0xc844…b105), finalized #60 (0xc844…b105), ⬇ 0 ⬆ 0    
2021-11-07 09:01:05 [Relaychain] 💤 Idle (3 peers), best: #142 (0xf8b6…d982), finalized #140 (0xd112…7e34), ⬇ 1.8kiB/s ⬆ 2.8kiB/s    
2021-11-07 09:01:06 [Relaychain] ✨ Imported #143 (0x20d8…f4ec)    

Verify XCM config to be secure and sensible

We have a working xcm config for facilitating downwards/upwards token tx. However, we should:

  • We should double-check if the current config is secure.
  • Find out why our parachain advertises only XcmV1 as protocol. As I read our codebase, it should advertise v2. As it only advertises v1, we need to overwrite the default xcm-version for our parachain with a root call.

westend testing

(or maybe rococo-reloaded by then?)

  1. launch "shell" (#19 ) runtime
  2. up-downward transfer relaychain native token
  3. verify fee collection to treasury (no burn!)
  4. upgrade code to full encointer runtime
  5. test bot-community growth

do not yet test sybil-defense as we won't have a matching parachain for that. collaborations will be needed for this

add chain-specs for kusama and westend

Chain-specs to be added:

With launch-runtime:

  • launch-kusama (loaded from json, generated by kusama-fresh)

  • launch-kusama-fresh (encointer-keys, encointer-root is not endowed)

  • launch-kusama-local (encointer-keys, encointer-root is endowed)

  • launch-kusama-local-dev (use well-known keys)

  • launch-westend (loaded from json generated by westend-fresh)

  • launch-westend-fresh (encointer-keys, encointer-root is not endowed)

  • launch-westend-local (encointer-keys, encointer-root is endowed)

  • launch-westend-local-dev (wellknown keys)

@brenzi suggestions?

bump to polkadot-v0.9.12

do NOT wait for upgraded encointer pallets (pallets#69)

Priority is the launch runtime, which does not include any encointer pallets (#19)

Move all runtime definitions to parachain-commons

polkadot-v0.9.12 has introduced a new crate that unifies some type and constant definitions. However, we still have the redundant definitions inside the runtime (partly because they are still there in upstream too). We should remove the runtime definitions favoring the ones from the parachain-commons crate and. However, we should re-export them there!

  • remove redundant defintions from runtime
  • extend missing definitions in the parachain-commons
  • re-export all definitions in the both runtimes.

bump to polkadot-v0.9.2

Test afterwards that sybil demo works, such that we ensure that xcmp works in general before tackling #4.

Rebranding from Polkadot/Cumulus.

There are still some cumulus/polkadot remnants that should be renamed. Double check everywhere.

  • polkadot collator -> encointer-collator
  • substrateCli: refers to cumulus issue link, uses still polkadot terminology.

Potentially more.

Be Inspired by Acalas Integration Tests

[CI] e2e test community growth. how to do sudo on dev parachain?

we should do the same integration like we do for encointer-node

Difficulty:

  • there is no sudo pallet, so new-community and next-phase won't work like they do now (faucet is fine because Alice is endowed in the dev setup. but on live rococo we'll need to initialize Alice with a teleport)

solution 1

add new runtime encointer-dev-runtime which is exactly the same as encointer-runtime plus sudo pallet

👎 this means more maintenance and potential for confusion. Moreover, we're not really guaranteed to be testing what we're deploying

solution 2

make helper scripts more flexible and sudo through relaychain XCM

  • if cli parameter --relay-chain-ws-port <port> is present, use relaychain sudo

the privileged function that should be executed: take encoded call from here:
image

and execute a sudo call on relaychain:
image

solution 3

use council/collective for new-community and next_phase calls.

upside: we're really testing what we'd do on the parachain itself

In general , we'd need 5 extrinsics for that

  • collective.propose(encointer_scheduler.netx_phase, ...)` and read proposal hash from events
  • 3x collective.vote(<proposal-hash>) by Alice, Bob, Charlie
  • collective.close(<proposal-hash>, index ....)

But if council has only one member, every proposal will be executed directly, without voting, so we just need to replace

sudo.sudo()

with

collective.propose()

in this case.

linker fails

although llvm 10 is available, we get this:

  = note: /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(vpaes-x86_64-elf.o): in function `GFp_vpaes_encrypt':        
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/pregenerated/vpaes-x86_64-elf.S:607: multiple definition of `GFp_vpaes_encrypt'; /home/abr
enzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(vpaes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d107b347f459
69e/out/vpaes-x86_64-elf.S:427: first defined here                                                                                                                                  
          /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(vpaes-x86_64-elf.o): in function `GFp_vpaes_set_encrypt_key':
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/pregenerated/vpaes-x86_64-elf.S:588: multiple definition of `GFp_vpaes_set_encrypt_key'; /
home/abrenzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(vpaes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d107
b347f45969e/out/vpaes-x86_64-elf.S:408: first defined here                                                                                                                          
          /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(aes_nohw.o): in function `GFp_aes_nohw_encrypt':             
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/crypto/fipsmodule/aes/aes_nohw.c:896: multiple definition of `GFp_aes_nohw_encrypt'; /home
/abrenzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(aes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d107b347f4
5969e/out/aes-x86_64-elf.S:194: first defined here                                                                                                                                  
          /usr/local/bin/ld: /home/abrenzikofer/integritee-parachain/target/release/deps/libring-047a7a5d3bde103a.rlib(aes_nohw.o): in function `GFp_aes_nohw_set_encrypt_key':     
          /home/abrenzikofer/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.19/crypto/fipsmodule/aes/aes_nohw.c:884: multiple definition of `GFp_aes_nohw_set_encrypt_key
'; /home/abrenzikofer/integritee-parachain/target/release/deps/libring-6cd9d9a5e3f06fc6.rlib(aes-x86_64-elf.o):/home/abrenzikofer/integritee-parachain/target/release/build/ring-4d1
07b347f45969e/out/aes-x86_64-elf.S:277: first defined here                                                                                                                          
          collect2: error: ld returned 1 exit status       

Is the randomness source secure enough?

https://docs.substrate.io/v3/runtime/randomness/ says:

"The first implementation provided by Substrate is the Randomness Collective Flip Pallet. This pallet is based on collective coin flipping. It is quite performant, but not very secure. This pallet should be used only when testing randomness-consuming pallets, not it production."

Is there a plan to move to something more secure than randomness collective flip or alternatively is there a good justification as to why it is adequate for this use case?

implement non-root governance and teleport

In order to qualify as a common-good, the parachain may not have a root origin. Chain code upgrades will be initiated by the relay-chain governance

  • remove sudo pallet #68

  • add council using collective pallet #68

    • set genesis council to encointer association members, with the president as prime voter
    • do NOT elect members by KSM coin voting. root origin can change membership. Add possibility for current council to add and remove members
    • council is NOT a root origin
  • optional add communities pallet and require council origin for all dispatchables (make origin configurable from runtime with EnsureOneOf

  • Should we fork statemine directly? (remove assets & uniques and add council pallets)

  • Do we need to start with a shell at all in this case? I'd rather add communities directly to demonstrate how governance is planned to work

EDIT CL: We postpone teleport upward as statemine does not have it either.

[polkadot-launch] can't launch relay-chain live configs

For some reason I can't launch live chains (westend, kusama, rococo without any suffix) with polkadot-launch. All other chain-specs work.

I can run these chain-specs with the polkadot binary directly. The issue only exists with polkadot-launch.

Edit: This happens when we launch live chains in our polkadot-launch config:

🧹 Resolving parachain id...
2021-11-01 03:37:08 Low open file descriptor limit configured for the process. Current value: 4096, recommended value: 10000.
2021-11-01 03:37:08 Building chain spec

Killing all processes...

use DOT/KSM/ROC as native parachain currency and allow down-/upward transfers

DOT = the relay chain's native token, can be ROC, KSM too

scenario:

  1. Start with zero DOTs on the parachain
  2. send downward transfer X relay chain DOT to parachain
  3. send tx on parachain, paying fees in DOT
  4. send DOT back to relay chain (upward transfer)

resources

fix hard coded paraid and make dependent of relaychain

./encointer-collator export-genesis-state --chain ${{ env.CHAIN_SPEC }} --parachain-id 2014 > ${{ env.CHAIN_SPEC }}.state

this may cause trouble, because on westend, the paraid isn't 2014

this line is also problematic:

./encointer-collator build-spec --chain ${{ env.CHAIN_SPEC }} --disable-default-bootnode --raw > ${{ env.CHAIN_SPEC }}.json

This command can be executed several times in a row and it will never produce identical json files (the order of the hashmap lines changes every time

bump encointer-pallets

Before tackling #21, we should first bump the pallets separately because there will be some runtime changes due to:

Things to do:

  1. Runtime constants were added removed and need changes in the runtime, e.g.:

    pub const MomentsPerDay: Moment = 86_400_000; // [ms/d]
    (maybe bad example that does not need a change, but this is a runtime constant)

  2. Genesis fields were added/removed and this needs some changes there:

    encointer_scheduler: parachain_runtime::EncointerSchedulerConfig {

Most changes can be copy-pasted from this PR: encointer/encointer-node#186

port encointer client for parachain

Because the parachain template still doesn't use MultiAddress, we need to adapt substrate-api-client as well as encointer-client to work with the encointer-collator

The strategy:

  • have the client in its own repo encointer/encointer-client
  • refactor encointer-client crate to be a library offering all chain-specific functions
  • separate encointer-cli-client crate for a CLI binary
  • make cli client support all chains with a single binary: Gesell, Cantillon, Parachain. Identify chain by metadata and use types accordingly (at least the Address type)
    • this will probably require making substrate-api-client more generic

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.