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

RFC32: CKB VM version selection #238

Merged
merged 8 commits into from
Apr 1, 2022

Conversation

doitian
Copy link
Member

@doitian doitian commented Jun 16, 2021

No description provided.

@doitian doitian requested a review from a team as a code owner June 16, 2021 11:56
@doitian doitian requested review from quake and xxuejie June 16, 2021 11:56
@doitian doitian mentioned this pull request Jun 16, 2021
@doitian doitian changed the title Initial version of the RFC about how to upgrade CKB VM CKB VM version selection Jun 16, 2021
@doitian doitian added ckb2021 Hard fork scheduled in 2021 hard-fork labels Jun 23, 2021
@doitian
Copy link
Member Author

doitian commented Jun 23, 2021

@yangby-cryptape 6f11385

@doitian doitian added the b:consensus Break consensus label Jun 26, 2021
bors bot added a commit to nervosnetwork/ckb that referenced this pull request Jul 1, 2021
2756: feat(hardfork): ckb2021 hardfork features (vm related part) r=doitian,quake a=yangby-cryptape

### Changes

- New hardfork Features

  -  [CKB-RFCs PR 236: RFC: ckb vm version1 changes](nervosnetwork/rfcs#236)

  -  [CKB-RFCs PR 237: RFC: vm syscalls 2](nervosnetwork/rfcs#237)

  -  [CKB-RFCs PR 238: CKB VM version selection](nervosnetwork/rfcs#238)

- All changes are followed to the latest RFCs, except:

  - Add a "edition" field to all configuration files: CKB chain specification or app configurations.

#### CKB Chain Edition

- If no `edition` field, the default edition is `"2019"`.

-  After this PR, the default files created by `ckb init` will be edition `"2021"` files.

   But the public chains will still use the edition `"2019"` CKB chain specification as the built-in spec.

   At present, there are only to public chains: "mainnet" and "testnet".

- The edition `"2019"` doesn't support hardfork parameters.

- How to upgrade from edition `"2019"` to `"2021"`?

  Modify your spec file (default is `specs/dev.toml`), `ckb.toml` and `ckb-miner.toml`:

    - Update all `hash_type = "data"` to `hash_type.kind = "data"` and `hash_type.vm_version = 0`.

    - Update all `hash_type = "type"` to `hash_type.kind = "type"`.

    - Insert `edition = "2021"` into the head of the files.

  After upgrade the edition of chain specification,  the first time to run the CKB, you have to use `--overwrite-spec` parameter. The details of this parameter can be found with `ckb run --help`.

### BREAKING CHANGES

- The field `hash_type` in `Script` is changed from a `String` to an `Object` for all JSON RPC methods.

  The details can be found in the latest RFCs.

- The argument `--ba-hash-type` for `ckb init` is split into two arguments: `--ba-hash-type-kind` and `--ba-hash-type-vm-version`.

  More details can be found with `ckb-release init --help`.

Co-authored-by: mohanson <mohanson@outlook.com>
Co-authored-by: Boyu Yang <yangby@cryptape.com>
@doitian doitian added this to Draft in ckb2021 Jul 5, 2021
@doitian doitian moved this from Draft to In review in ckb2021 Jul 19, 2021
@doitian doitian changed the title CKB VM version selection RFC232: CKB VM version selection Jul 22, 2021
@doitian doitian mentioned this pull request Jul 23, 2021
13 tasks
@doitian doitian changed the title RFC232: CKB VM version selection RFC32: CKB VM version selection Jul 23, 2021
…on.md

Co-authored-by: Boyu Yang <yangby@cryptape.com>
doitian added a commit to doitian/rfcs that referenced this pull request Aug 3, 2021
closes https:
//github.com/nervosnetwork/pull/238#discussion_r675663889
@zhangsoledad zhangsoledad self-requested a review March 1, 2022 09:38
@doitian doitian requested review from xxuejie and removed request for quake March 4, 2022 02:12
@doitian
Copy link
Member Author

doitian commented Mar 4, 2022

Assigned reviewers: @xxuejie @zhangsoledad

@doitian doitian moved this from In review to In progress in ckb2021 Mar 14, 2022
@doitian doitian moved this from In progress to In review in ckb2021 Mar 15, 2022
ckb2021 automation moved this from In review to Final Comment Period Mar 17, 2022
@doitian doitian added the s:fcp Final Comment Period. PR is merged when there's no comments in 14 days. label Mar 18, 2022
@doitian
Copy link
Member Author

doitian commented Mar 18, 2022

FCP will end on 2022-04-01

@doitian doitian merged commit 3a376af into nervosnetwork:master Apr 1, 2022
ckb2021 automation moved this from Final Comment Period to Done Apr 1, 2022
@doitian doitian deleted the ckb-vm-version-selection branch April 1, 2022 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
b:consensus Break consensus ckb2021 Hard fork scheduled in 2021 hard-fork s:fcp Final Comment Period. PR is merged when there's no comments in 14 days.
Projects
Development

Successfully merging this pull request may close these issues.

None yet

4 participants