Skip to content

Commit 35d4d56

Browse files
authored
Merge pull request #2963 from ProvableHQ/consensus_version_v12
Add ConsensusVersion::V12
2 parents 65a079a + fd6191d commit 35d4d56

7 files changed

Lines changed: 79 additions & 71 deletions

File tree

console/network/src/consensus_heights.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ pub enum ConsensusVersion {
4545
V10 = 10,
4646
/// V11: Expand array size limit to 512 and introduce ECDSA signature verification opcodes.
4747
V11 = 11,
48+
/// V12: Prevent connection to forked nodes.
49+
V12 = 12,
4850
}
4951

5052
impl ToBytes for ConsensusVersion {
@@ -68,6 +70,7 @@ impl FromBytes for ConsensusVersion {
6870
9 => Ok(Self::V9),
6971
10 => Ok(Self::V10),
7072
11 => Ok(Self::V11),
73+
12 => Ok(Self::V12),
7174
_ => Err(io_error("Invalid consensus version")),
7275
}
7376
}
@@ -87,7 +90,7 @@ impl std::fmt::Display for ConsensusVersion {
8790
}
8891

8992
/// The number of consensus versions.
90-
pub(crate) const NUM_CONSENSUS_VERSIONS: usize = 11;
93+
pub(crate) const NUM_CONSENSUS_VERSIONS: usize = enum_iterator::cardinality::<ConsensusVersion>();
9194

9295
/// The consensus version height for `CanaryV0`.
9396
pub const CANARY_V0_CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); NUM_CONSENSUS_VERSIONS] = [
@@ -102,6 +105,7 @@ pub const CANARY_V0_CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); NUM_CON
102105
(ConsensusVersion::V9, 8_028_000),
103106
(ConsensusVersion::V10, 8_600_000),
104107
(ConsensusVersion::V11, 9_510_000),
108+
(ConsensusVersion::V12, 9_906_000),
105109
];
106110

107111
/// The consensus version height for `MainnetV0`.
@@ -117,6 +121,7 @@ pub const MAINNET_V0_CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); NUM_CO
117121
(ConsensusVersion::V9, 10_272_000),
118122
(ConsensusVersion::V10, 11_205_000),
119123
(ConsensusVersion::V11, 12_155_500),
124+
(ConsensusVersion::V12, 13_579_000),
120125
];
121126

122127
/// The consensus version heights for `TestnetV0`.
@@ -132,6 +137,7 @@ pub const TESTNET_V0_CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); NUM_CO
132137
(ConsensusVersion::V9, 9_800_000),
133138
(ConsensusVersion::V10, 10_525_000),
134139
(ConsensusVersion::V11, 11_680_720),
140+
(ConsensusVersion::V12, 12_522_984),
135141
];
136142

137143
/// The consensus version heights when the `test_consensus_heights` feature is enabled.
@@ -147,6 +153,7 @@ pub const TEST_CONSENSUS_VERSION_HEIGHTS: [(ConsensusVersion, u32); NUM_CONSENSU
147153
(ConsensusVersion::V9, 12),
148154
(ConsensusVersion::V10, 13),
149155
(ConsensusVersion::V11, 14),
156+
(ConsensusVersion::V12, 15),
150157
];
151158

152159
#[cfg(any(test, feature = "test", feature = "test_consensus_heights"))]

synthesizer/tests/expectations/vm/execute_and_finalize/branch_with_future.out

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,35 @@ outputs:
44
execute:
55
branch_with_future.aleo/bar:
66
outputs:
7-
- '{"type":"future","id":"7973646270430063562373513285442797277543538404623747447923720508256936178352field","value":"{\n program_id: branch_with_future.aleo,\n function_name: bar,\n arguments: [\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n false\n ]\n }\n \n ]\n}"}'
7+
- '{"type":"future","id":"7288896262197555662761828224784237732052643111617430351902245259912426045153field","value":"{\n program_id: branch_with_future.aleo,\n function_name: bar,\n arguments: [\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n false\n ]\n }\n \n ]\n}"}'
88
speculate: the execution was rejected
99
add_next_block: succeeded.
1010
- verified: true
1111
execute:
1212
branch_with_future.aleo/baz:
1313
outputs:
14-
- '{"type":"future","id":"6217861816055521818360298370891282214244329218509041907844747647593898694072field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n true,\n true,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
14+
- '{"type":"future","id":"5806477145193618952034600457237812348092143858510492661939113854850409996229field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n true,\n true,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
1515
speculate: the execution was accepted
1616
add_next_block: succeeded.
1717
- verified: true
1818
execute:
1919
branch_with_future.aleo/baz:
2020
outputs:
21-
- '{"type":"future","id":"6818446530611738476418477207613652616986018798349107220359971960836697161616field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n true,\n false,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
21+
- '{"type":"future","id":"7732375940496493246688248523070942096820081079976270457877521706188569226003field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n true,\n false,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
2222
speculate: the execution was rejected
2323
add_next_block: succeeded.
2424
- verified: true
2525
execute:
2626
branch_with_future.aleo/baz:
2727
outputs:
28-
- '{"type":"future","id":"2742810851976685536192148443922944264384991772618508513342534601337442179351field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n false,\n true,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
28+
- '{"type":"future","id":"3797341010947399028826908669134250682637889099379106115729247838918509639000field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n false,\n true,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
2929
speculate: the execution was rejected
3030
add_next_block: succeeded.
3131
- verified: true
3232
execute:
3333
branch_with_future.aleo/baz:
3434
outputs:
35-
- '{"type":"future","id":"2120145657495978456586176901591611938046231283490625348949209089457418356716field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n false,\n false,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
35+
- '{"type":"future","id":"3301904300125035229933941565784439035758619729465323436407687815452213394240field","value":"{\n program_id: branch_with_future.aleo,\n function_name: baz,\n arguments: [\n false,\n false,\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n },\n {\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n }\n \n ]\n}"}'
3636
speculate: the execution was accepted
3737
add_next_block: succeeded.
3838
- verified: true
@@ -46,35 +46,35 @@ additional:
4646
- child_outputs:
4747
child.aleo/foo:
4848
outputs:
49-
- '{"type":"future","id":"6695659023260461245660727980876121602841038379245786685591077158097090530275field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n false\n ]\n}"}'
49+
- '{"type":"future","id":"5773287020931987863711575982907990779231757385847176015487407111001456625619field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n false\n ]\n}"}'
5050
credits.aleo/fee_public:
5151
outputs:
52-
- '{"type":"future","id":"6036913973229528143599186539517771717901352279020675483008642689588236772982field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2085u64\n ]\n}"}'
52+
- '{"type":"future","id":"4973720474738462345611543216766514739746355105837021327766777477639260491274field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2085u64\n ]\n}"}'
5353
- child_outputs:
5454
child.aleo/foo:
5555
outputs:
56-
- '{"type":"future","id":"4586523778709409442924155905128493603500929760368295973122707366965589242125field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
56+
- '{"type":"future","id":"3019211196334525216747871853398793174665544747298867841982355118657545167607field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
5757
credits.aleo/fee_public:
5858
outputs:
59-
- '{"type":"future","id":"5443886476956824015934901826639169187032580423641141364435972986716640984682field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2790u64\n ]\n}"}'
59+
- '{"type":"future","id":"5350348506752728668871301717990347779912802534458638654323242946949151196550field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2790u64\n ]\n}"}'
6060
- child_outputs:
6161
child.aleo/foo:
6262
outputs:
63-
- '{"type":"future","id":"92109804259069205354331464334081047745254321222298177146204123750721585119field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
63+
- '{"type":"future","id":"1798765843712687450957314068296008203814756636507420443560370663186385670929field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
6464
credits.aleo/fee_public:
6565
outputs:
66-
- '{"type":"future","id":"5961280847447500387587809521764832977077982270658218885156999759698731528651field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2790u64\n ]\n}"}'
66+
- '{"type":"future","id":"4168379928193683663155404306736402269523881336697067374802911574437154516123field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2790u64\n ]\n}"}'
6767
- child_outputs:
6868
child.aleo/foo:
6969
outputs:
70-
- '{"type":"future","id":"3729213581918668016170118102219307566837576360438147950629862061279735365153field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
70+
- '{"type":"future","id":"6029082698397467604081713435601004270195378865776994947121620171999227885109field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
7171
credits.aleo/fee_public:
7272
outputs:
73-
- '{"type":"future","id":"4187820260195332838732869909023865549888110411852724047366146765083824747449field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2790u64\n ]\n}"}'
73+
- '{"type":"future","id":"662450684780655730964584291739983308261165958143610604868350547103740158269field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2790u64\n ]\n}"}'
7474
- child_outputs:
7575
child.aleo/foo:
7676
outputs:
77-
- '{"type":"future","id":"5072823829234741286735886988284948609582329441561718875899286208361544682771field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
77+
- '{"type":"future","id":"8064123217334542965607926683353979750928224176532218151884193071858538156788field","value":"{\n program_id: child.aleo,\n function_name: foo,\n arguments: [\n true,\n true\n ]\n}"}'
7878
credits.aleo/fee_public:
7979
outputs:
8080
- '{"type":"future","id":"3198047707632949697734777377141117011192825297010133845300299020915114030161field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo19f7ldyn2txn950arxwzgmd69hc92agvaavuaghq3n86fv9sq25qsuu46xk,\n 2790u64\n ]\n}"}'

synthesizer/tests/expectations/vm/execute_and_finalize/hello.out

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,46 @@ outputs:
44
execute:
55
hello.aleo/hello:
66
outputs:
7-
- '{"type":"private","id":"797034489101310430474302414752402458311884375115682625784760376350094190151field","value":"ciphertext1qyqwvnw2kwwxvs5llqzv8s86lhhxxzu0tx2qxyn8ecsumxn98urxcpqw5un2k"}'
7+
- '{"type":"private","id":"3067112289771026416602608029546215689480230635787358172269181214116473536657field","value":"ciphertext1qyq02t7uqlcfw9sgp0pypf2hgpqgfq9dazwtf06tmvxwutpq5hqrvzs4yqvtr"}'
88
speculate: the execution was accepted
99
add_next_block: succeeded.
1010
- verified: true
1111
execute:
1212
hello.aleo/hello:
1313
outputs:
14-
- '{"type":"private","id":"7674464132600746542736088047224008349406083022395463433210379013914231594915field","value":"ciphertext1qyqfrhswlxzpc7udkg8xh2s3lsytfpqfmvvz59vcydgll5d0ag7q6rg0g3x7j"}'
14+
- '{"type":"private","id":"7128432731345166329625533482159191637873282420112148589133159314814983916241field","value":"ciphertext1qyqy5l8q07xgvzz2uyhghmdca8ftq7nqx6suf9e2n0jsx35l8nvlupspkpqex"}'
1515
speculate: the execution was accepted
1616
add_next_block: succeeded.
1717
- verified: true
1818
execute:
1919
hello.aleo/goodbye:
2020
outputs:
21-
- '{"type":"public","id":"7072394850796043109258082140540314858687825659378467105002530781602390387333field","value":"1u32"}'
22-
- '{"type":"future","id":"8395647165745591986141786802606247115319318229658204958057337968078787651008field","value":"{\n program_id: hello.aleo,\n function_name: goodbye,\n arguments: [\n 1u32,\n 1u32\n ]\n}"}'
21+
- '{"type":"public","id":"1955809651112329001701088734779266289561315034685386776064838314347285413684field","value":"1u32"}'
22+
- '{"type":"future","id":"4455355398278415809665294808056405614279761790954020590066875113418320738567field","value":"{\n program_id: hello.aleo,\n function_name: goodbye,\n arguments: [\n 1u32,\n 1u32\n ]\n}"}'
2323
speculate: the execution was accepted
2424
add_next_block: succeeded.
2525
- verified: true
2626
execute:
2727
hello.aleo/goodbye:
2828
outputs:
29-
- '{"type":"public","id":"2895474283661640570090298914014842044867372365471902215604573642508018367105field","value":"1u32"}'
30-
- '{"type":"future","id":"810901459171254910745145190445841449595158940976146072619011891523637488727field","value":"{\n program_id: hello.aleo,\n function_name: goodbye,\n arguments: [\n 0u32,\n 1u32\n ]\n}"}'
29+
- '{"type":"public","id":"3924151869748706630684893242147369556423468923921448446424346943786516510663field","value":"1u32"}'
30+
- '{"type":"future","id":"4954490551759229005332468255695867102560150464574785157699408031916189041239field","value":"{\n program_id: hello.aleo,\n function_name: goodbye,\n arguments: [\n 0u32,\n 1u32\n ]\n}"}'
3131
speculate: the execution was rejected
3232
add_next_block: succeeded.
3333
additional:
3434
- child_outputs:
3535
credits.aleo/fee_public:
3636
outputs:
37-
- '{"type":"future","id":"1804237389310186538158070202110462566985962629287882084844485406845701855465field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1317u64\n ]\n}"}'
37+
- '{"type":"future","id":"5876238170943580993663194204772322189230649299859148831112976015919479421715field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1317u64\n ]\n}"}'
3838
- child_outputs:
3939
credits.aleo/fee_public:
4040
outputs:
41-
- '{"type":"future","id":"7073089316788163282285218399953922353470758926529530047740643216495699864832field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1317u64\n ]\n}"}'
41+
- '{"type":"future","id":"6737852088521839690807682481308314838479705890883861842614262211605780698107field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1317u64\n ]\n}"}'
4242
- child_outputs:
4343
credits.aleo/fee_public:
4444
outputs:
45-
- '{"type":"future","id":"1213738021575073706024875305468425584915439776391058941585623955262550711830field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1406u64\n ]\n}"}'
45+
- '{"type":"future","id":"5045137559824695693686172955650550012490285220687008325069075717689452835545field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1406u64\n ]\n}"}'
4646
- child_outputs:
4747
credits.aleo/fee_public:
4848
outputs:
49-
- '{"type":"future","id":"2715641603616622920010523541317136071710425241153814415454887148832375650071field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1406u64\n ]\n}"}'
49+
- '{"type":"future","id":"6882576813334374412058338403933770635612787139363853417646907985912112773218field","value":"{\n program_id: credits.aleo,\n function_name: fee_public,\n arguments: [\n aleo10knkelvnd55fsaarm25wch7p9suf2tqlgwy5k4nxwms6d262xyfqm2tccr,\n 1406u64\n ]\n}"}'

0 commit comments

Comments
 (0)