Skip to content

Commit

Permalink
Merge #2867
Browse files Browse the repository at this point in the history
2867: chore(hardfork): update RFC numbers and links r=doitian,driftluo a=yangby-cryptape

Resolve #2865.

Co-authored-by: Boyu Yang <[email protected]>
  • Loading branch information
bors[bot] and yangby-cryptape authored Jul 27, 2021
2 parents b8726f5 + a810ead commit fb27f98
Show file tree
Hide file tree
Showing 14 changed files with 147 additions and 117 deletions.
2 changes: 1 addition & 1 deletion docs/hashes.toml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ index = 1

# Spec: ckb_dev
[ckb_dev]
spec_hash = "0x4df07f7ae1bbc06373bcc3487ca8011ee3f57a3d46d2357b34728cbd412d4ce6"
spec_hash = "0xcbcbe813d7c24e2560113d31b523073ad691bf2ce645db13e298a53d96e16683"
genesis = "0x823b2ff5785b12da8b1363cac9a5cbe566d8b715a4311441b119c39a0367488c"
cellbase = "0xa563884b3686078ec7e7677a5f86449b15cf2693f3c1241766c6996f206cc541"

Expand Down
12 changes: 6 additions & 6 deletions resource/specs/dev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -96,12 +96,12 @@ genesis_epoch_length = 1000
permanent_difficulty_in_dummy = true

[params.hardfork]
rfc_0221 = 0
rfc_0222 = 0
rfc_0223 = 0
rfc_0224 = 0
rfc_0232 = 0
rfc_0240 = 0
rfc_0028 = 0
rfc_0029 = 0
rfc_0030 = 0
rfc_0031 = 0
rfc_0032 = 0
rfc_0036 = 0

[pow]
func = "Dummy"
2 changes: 1 addition & 1 deletion rpc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3562,7 +3562,7 @@ Refer to RFC [CKB Block Structure](https://github.com/nervosnetwork/rfcs/blob/ma

### Notice

This field is renamed from `uncles_hash` since 0.100.0. More details can be found in [CKB RFC 224](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0224-variable-length-header-field/0224-variable-length-header-field.md).
This field is renamed from `uncles_hash` since 0.100.0. More details can be found in [CKB RFC 0031](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0031-variable-length-header-field/0031-variable-length-header-field.md).

* `dao`: [`Byte32`](#type-byte32) - DAO fields.

Expand Down
2 changes: 1 addition & 1 deletion script/src/verify/tests/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ impl TransactionScriptsVerifierWithEnv {
let version_1_enabled_at = 10;
let hardfork_switch = HardForkSwitch::new_without_any_enabled()
.as_builder()
.rfc_0232(version_1_enabled_at)
.rfc_0032(version_1_enabled_at)
.build()
.unwrap();
let consensus = ConsensusBuilder::default()
Expand Down
70 changes: 46 additions & 24 deletions spec/src/hardfork.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,46 @@ use serde::{Deserialize, Serialize};
#[derive(Default, Clone, PartialEq, Eq, Debug, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct HardForkConfig {
/// Ref: [CKB RFC 221](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0221-change-since-relative-timestamp/0221-change-since-relative-timestamp.md)
/// Use input cell committing block timestamp as the start time for the relative timestamp in `since`.
///
/// Ref: [CKB RFC 0028](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0028-change-since-relative-timestamp/0028-change-since-relative-timestamp.md)
#[serde(skip_serializing_if = "Option::is_none")]
pub rfc_0221: Option<EpochNumber>,
/// Ref: [CKB RFC 222](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0222-allow-script-multiple-matches-on-identical-code/0222-allow-script-multiple-matches-on-identical-code.md)
pub rfc_0028: Option<EpochNumber>,
/// Allow Multiple Cell Dep Matches When There Is No Ambiguity.
///
/// Ref: [CKB RFC 0029](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0029-allow-script-multiple-matches-on-identical-code/0029-allow-script-multiple-matches-on-identical-code.md)
#[serde(skip_serializing_if = "Option::is_none")]
pub rfc_0222: Option<EpochNumber>,
/// Ref: [CKB RFC 223](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0223-ensure-index-less-than-length-in-since/0223-ensure-index-less-than-length-in-since.md)
pub rfc_0029: Option<EpochNumber>,
/// Ensure That Index Is Less Than Length In the Input Since Field Using Epoch With Fraction.
///
/// Ref: [CKB RFC 0030](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0030-ensure-index-less-than-length-in-since/0030-ensure-index-less-than-length-in-since.md)
#[serde(skip_serializing_if = "Option::is_none")]
pub rfc_0223: Option<EpochNumber>,
/// Ref: [CKB RFC 224](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0224-variable-length-header-field/0224-variable-length-header-field.md)
pub rfc_0030: Option<EpochNumber>,
/// Add a variable length field in the block: reuse `uncles_hash` in the header as `extra_hash`.
///
/// Ref: [CKB RFC 0031](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0031-variable-length-header-field/0031-variable-length-header-field.md)
#[serde(skip_serializing_if = "Option::is_none")]
pub rfc_0224: Option<EpochNumber>,
/// Ref: [CKB RFC 232](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0232-ckb-vm-version-selection/0232-ckb-vm-version-selection.md)
pub rfc_0031: Option<EpochNumber>,
/// CKB VM Version Selection.
///
/// This feature include 4 parts:
/// - CKB VM Version Selection.
/// - CKB VM version 1.
/// - CKB VM Syscalls 2.
/// - P2P protocol upgrade.
///
/// Ref:
/// - [CKB RFC 0032](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0032-ckb-vm-version-selection/0032-ckb-vm-version-selection.md)
/// - [CKB RFC 0033](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0033-ckb-vm-version-1/0033-ckb-vm-version-1.md)
/// - [CKB RFC 0034](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0034-vm-syscalls-2/0034-vm-syscalls-2.md)
/// - [CKB RFC 0035](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0035-ckb2021-p2p-protocol-upgrade/0035-ckb2021-p2p-protocol-upgrade.md)
#[serde(skip_serializing_if = "Option::is_none")]
pub rfc_0232: Option<EpochNumber>,
/// Ref: [CKB RFC 240](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0240-remove-header-deps-immature-rule/0240-remove-header-deps-immature-rule.md)
pub rfc_0032: Option<EpochNumber>,
/// Remove Header Deps Immature Rule.
///
/// Ref: [CKB RFC 0036](https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0036-remove-header-deps-immature-rule/0036-remove-header-deps-immature-rule.md)
#[serde(skip_serializing_if = "Option::is_none")]
pub rfc_0240: Option<EpochNumber>,
pub rfc_0036: Option<EpochNumber>,
}

macro_rules! check_default {
Expand Down Expand Up @@ -69,12 +91,12 @@ impl HardForkConfig {
ckb2021: EpochNumber,
) -> Result<HardForkSwitchBuilder, String> {
let builder = builder
.rfc_0221(check_default!(self, rfc_0221, ckb2021))
.rfc_0222(check_default!(self, rfc_0222, ckb2021))
.rfc_0223(check_default!(self, rfc_0223, ckb2021))
.rfc_0224(check_default!(self, rfc_0224, ckb2021))
.rfc_0232(check_default!(self, rfc_0232, ckb2021))
.rfc_0240(check_default!(self, rfc_0240, ckb2021));
.rfc_0028(check_default!(self, rfc_0028, ckb2021))
.rfc_0029(check_default!(self, rfc_0029, ckb2021))
.rfc_0030(check_default!(self, rfc_0030, ckb2021))
.rfc_0031(check_default!(self, rfc_0031, ckb2021))
.rfc_0032(check_default!(self, rfc_0032, ckb2021))
.rfc_0036(check_default!(self, rfc_0036, ckb2021));
Ok(builder)
}

Expand All @@ -83,12 +105,12 @@ impl HardForkConfig {
/// Enable features which are set to `None` at the user provided epoch.
pub fn complete_with_default(&self, default: EpochNumber) -> Result<HardForkSwitch, String> {
HardForkSwitch::new_builder()
.rfc_0221(self.rfc_0221.unwrap_or(default))
.rfc_0222(self.rfc_0222.unwrap_or(default))
.rfc_0223(self.rfc_0223.unwrap_or(default))
.rfc_0224(self.rfc_0224.unwrap_or(default))
.rfc_0232(self.rfc_0232.unwrap_or(default))
.rfc_0240(self.rfc_0240.unwrap_or(default))
.rfc_0028(self.rfc_0028.unwrap_or(default))
.rfc_0029(self.rfc_0029.unwrap_or(default))
.rfc_0030(self.rfc_0030.unwrap_or(default))
.rfc_0031(self.rfc_0031.unwrap_or(default))
.rfc_0032(self.rfc_0032.unwrap_or(default))
.rfc_0036(self.rfc_0036.unwrap_or(default))
.build()
}
}
8 changes: 4 additions & 4 deletions test/src/specs/hardfork/v2021/cell_deps.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ impl Spec for DuplicateCellDepsForDataHashTypeLockScript {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0222 = Some(CKB2021_START_EPOCH);
switch.rfc_0029 = Some(CKB2021_START_EPOCH);
}
}
}
Expand Down Expand Up @@ -188,7 +188,7 @@ impl Spec for DuplicateCellDepsForDataHashTypeTypeScript {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0222 = Some(CKB2021_START_EPOCH);
switch.rfc_0029 = Some(CKB2021_START_EPOCH);
}
}
}
Expand Down Expand Up @@ -276,7 +276,7 @@ impl Spec for DuplicateCellDepsForTypeHashTypeLockScript {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0222 = Some(CKB2021_START_EPOCH);
switch.rfc_0029 = Some(CKB2021_START_EPOCH);
}
}
}
Expand Down Expand Up @@ -363,7 +363,7 @@ impl Spec for DuplicateCellDepsForTypeHashTypeTypeScript {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0222 = Some(CKB2021_START_EPOCH);
switch.rfc_0029 = Some(CKB2021_START_EPOCH);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion test/src/specs/hardfork/v2021/extension.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ impl Spec for CheckBlockExtension {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0224 = Some(2);
switch.rfc_0031 = Some(2);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion test/src/specs/hardfork/v2021/header_deps.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ impl Spec for ImmatureHeaderDeps {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0240 = Some(CKB2021_START_EPOCH);
switch.rfc_0036 = Some(CKB2021_START_EPOCH);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions test/src/specs/hardfork/v2021/since.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ impl Spec for CheckAbsoluteEpochSince {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0223 = Some(2);
switch.rfc_0030 = Some(2);
}
}
}
Expand Down Expand Up @@ -254,7 +254,7 @@ impl Spec for CheckRelativeEpochSince {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0223 = Some(7);
switch.rfc_0030 = Some(7);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion test/src/specs/hardfork/v2021/vm_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ impl Spec for CheckVmVersion {
spec.params.hardfork = Some(Default::default());
}
if let Some(mut switch) = spec.params.hardfork.as_mut() {
switch.rfc_0232 = Some(CKB2021_START_EPOCH);
switch.rfc_0032 = Some(CKB2021_START_EPOCH);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions util/jsonrpc-types/src/blockchain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -652,9 +652,9 @@ pub struct Header {
/// # Notice
///
/// This field is renamed from `uncles_hash` since 0.100.0.
/// More details can be found in [CKB RFC 224].
/// More details can be found in [CKB RFC 0031].
///
/// [CKB RFC 224]: https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0224-variable-length-header-field/0224-variable-length-header-field.md
/// [CKB RFC 0031]: https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0031-variable-length-header-field/0031-variable-length-header-field.md
pub extra_hash: H256,
/// DAO fields.
///
Expand Down
Loading

0 comments on commit fb27f98

Please sign in to comment.