Skip to content

Commit

Permalink
Update the WASM compatibility tests for 0.36 release (#2271)
Browse files Browse the repository at this point in the history
Closes #2198.

## Description
This test upgrades the forward compatibility test by replacing the
"genesis" nodes (which used v0.26) with the nodes that use v36 of the
client.

It also adds one backward compatibility test:
`latest_binary_is_backward_compatible_and_follows_blocks_created_by_v36_binary()`

### Before requesting review
- [X] I have reviewed the code myself

---------

Co-authored-by: Green Baneling <XgreenX9999@gmail.com>
  • Loading branch information
rafal-ch and xgreenx authored Oct 5, 2024
1 parent a932dad commit 301fb60
Show file tree
Hide file tree
Showing 10 changed files with 599 additions and 33 deletions.
19 changes: 13 additions & 6 deletions version-compatibility/forkless-upgrade/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ tokio = { version = "1.37.0", features = ["rt-multi-thread"] }

# Neutral deps
fuel-core-trace = { path = "../../crates/trace" }
fuel-crypto = { version = "0.49.0" }
fuel-tx = { version = "0.49.0", features = ["random"] }
fuel-crypto = { version = "0.57.0" }
fuel-tx = { version = "0.57.0", features = ["random"] }

# Latest fuel-core
latest-fuel-core-bin = { path = "../../bin/fuel-core", package = "fuel-core-bin", features = [
Expand All @@ -29,10 +29,9 @@ latest-fuel-core-type = { path = "../../crates/types", package = "fuel-core-type
"test-helpers",
] }
latest-fuel-core-client = { path = "../../crates/client", package = "fuel-core-client" }
# TODO: https://github.com/FuelLabs/fuel-core/issues/2198
#latest-fuel-core-upgradable-executor = { path = "../../crates/services/upgradable-executor", package = "fuel-core-upgradable-executor", features = [
# "wasm-executor",
#] }
latest-fuel-core-upgradable-executor = { path = "../../crates/services/upgradable-executor", package = "fuel-core-upgradable-executor", features = [
"wasm-executor",
] }

# Genesis fuel-core
genesis-fuel-core-bin = { version = "0.26.0", package = "fuel-core-bin", features = [
Expand All @@ -41,3 +40,11 @@ genesis-fuel-core-bin = { version = "0.26.0", package = "fuel-core-bin", feature
] }
genesis-fuel-core-client = { version = "0.26.0", package = "fuel-core-client" }
genesis-fuel-core-services = { version = "0.26.0", package = "fuel-core-services" }

# Fuel core version 0.36.0
version-36-fuel-core-bin = { version = "0.36.0", package = "fuel-core-bin", features = [
"parquet",
"p2p",
] }
version-36-fuel-core-client = { version = "0.36.0", package = "fuel-core-client" }
version-36-fuel-core-services = { version = "0.36.0", package = "fuel-core-services" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# The configuration of the V36 network

This configuration was generated in the following way:
1. Get the `fuel-core` from `release/v0.36.0` branch (commit b5d5ff8d13f16a0bd53e79ee0e8f5438971be2b9)
2. Build and run in order to create a DB
3. Run again with the `snapshot` parameter
4. Apply the following modifications to `chain_config.json`
- PoA Key: `{"address":"3ba3b213c8d5ec4d4901ac34b0e924d635384a8b0a5df6e116bce9a783da8e02","secret":"e3d6eb39607650e22f0befa26d52e921d2e7924d0e165f38ffa8d9d0ac73de93","type":"block_production"}`
- Privileged Key: `{"address":"f034f7859dbf1d775cba16fc175eef249a045d6484a8b9388c9e280267125b73","secret":"dcbe36d8e890d7489b6e1be442eab98ae2fdbb5c7d77e1f9e1e12a545852304f","type":"block_production"}`
- Change "chain_name" from "Local testnet" to "V36"
Original file line number Diff line number Diff line change
@@ -0,0 +1,307 @@
{
"chain_name": "V36",
"consensus_parameters": {
"V2": {
"tx_params": {
"V1": {
"max_inputs": 255,
"max_outputs": 255,
"max_witnesses": 255,
"max_gas_per_tx": 30000000,
"max_size": 112640,
"max_bytecode_subsections": 256
}
},
"predicate_params": {
"V1": {
"max_predicate_length": 102400,
"max_predicate_data_length": 102400,
"max_message_data_length": 102400,
"max_gas_per_predicate": 30000000
}
},
"script_params": {
"V1": {
"max_script_length": 102400,
"max_script_data_length": 102400
}
},
"contract_params": {
"V1": {
"contract_max_size": 102400,
"max_storage_slots": 1760
}
},
"fee_params": {
"V1": {
"gas_price_factor": 92000,
"gas_per_byte": 63
}
},
"chain_id": 0,
"gas_costs": {
"V4": {
"add": 2,
"addi": 2,
"and": 2,
"andi": 2,
"bal": 29,
"bhei": 2,
"bhsh": 2,
"burn": 19976,
"cb": 2,
"cfsi": 2,
"div": 2,
"divi": 2,
"eck1": 1907,
"ecr1": 26135,
"eq": 2,
"exp": 2,
"expi": 2,
"flag": 2,
"gm": 2,
"gt": 2,
"gtf": 13,
"ji": 2,
"jmp": 2,
"jne": 2,
"jnei": 2,
"jnzi": 2,
"jmpf": 2,
"jmpb": 2,
"jnzf": 2,
"jnzb": 2,
"jnef": 2,
"jneb": 2,
"lb": 2,
"log": 102,
"lt": 2,
"lw": 2,
"mint": 18042,
"mlog": 2,
"mod": 2,
"modi": 2,
"move": 2,
"movi": 2,
"mroo": 4,
"mul": 2,
"muli": 2,
"mldv": 3,
"noop": 1,
"not": 2,
"or": 2,
"ori": 2,
"poph": 3,
"popl": 3,
"pshh": 5,
"pshl": 5,
"ret_contract": 53,
"rvrt_contract": 52,
"sb": 2,
"sll": 2,
"slli": 2,
"srl": 2,
"srli": 2,
"srw": 177,
"sub": 2,
"subi": 2,
"sw": 2,
"sww": 17302,
"time": 35,
"tr": 27852,
"tro": 19718,
"wdcm": 2,
"wqcm": 2,
"wdop": 3,
"wqop": 3,
"wdml": 3,
"wqml": 3,
"wddv": 4,
"wqdv": 5,
"wdmd": 8,
"wqmd": 12,
"wdam": 7,
"wqam": 8,
"wdmm": 8,
"wqmm": 8,
"xor": 2,
"xori": 2,
"aloc": {
"LightOperation": {
"base": 2,
"units_per_gas": 15
}
},
"bsiz": {
"LightOperation": {
"base": 17,
"units_per_gas": 790
}
},
"bldd": {
"LightOperation": {
"base": 15,
"units_per_gas": 272
}
},
"cfe": {
"LightOperation": {
"base": 10,
"units_per_gas": 1818181
}
},
"cfei": {
"LightOperation": {
"base": 2,
"units_per_gas": 1000000
}
},
"call": {
"LightOperation": {
"base": 13513,
"units_per_gas": 7
}
},
"ccp": {
"LightOperation": {
"base": 34,
"units_per_gas": 39
}
},
"croo": {
"LightOperation": {
"base": 91,
"units_per_gas": 3
}
},
"csiz": {
"LightOperation": {
"base": 31,
"units_per_gas": 438
}
},
"ed19": {
"LightOperation": {
"base": 3000,
"units_per_gas": 214
}
},
"k256": {
"LightOperation": {
"base": 27,
"units_per_gas": 5
}
},
"ldc": {
"LightOperation": {
"base": 43,
"units_per_gas": 102
}
},
"logd": {
"LightOperation": {
"base": 363,
"units_per_gas": 4
}
},
"mcl": {
"LightOperation": {
"base": 2,
"units_per_gas": 1041
}
},
"mcli": {
"LightOperation": {
"base": 2,
"units_per_gas": 1025
}
},
"mcp": {
"LightOperation": {
"base": 4,
"units_per_gas": 325
}
},
"mcpi": {
"LightOperation": {
"base": 8,
"units_per_gas": 511
}
},
"meq": {
"LightOperation": {
"base": 3,
"units_per_gas": 940
}
},
"retd_contract": {
"LightOperation": {
"base": 305,
"units_per_gas": 4
}
},
"s256": {
"LightOperation": {
"base": 31,
"units_per_gas": 4
}
},
"scwq": {
"HeavyOperation": {
"base": 16346,
"gas_per_unit": 17163
}
},
"smo": {
"LightOperation": {
"base": 40860,
"units_per_gas": 2
}
},
"srwq": {
"HeavyOperation": {
"base": 187,
"gas_per_unit": 179
}
},
"swwq": {
"HeavyOperation": {
"base": 17046,
"gas_per_unit": 16232
}
},
"contract_root": {
"LightOperation": {
"base": 31,
"units_per_gas": 2
}
},
"state_root": {
"HeavyOperation": {
"base": 236,
"gas_per_unit": 122
}
},
"new_storage_per_byte": 63,
"vm_initialization": {
"LightOperation": {
"base": 3957,
"units_per_gas": 48
}
}
}
},
"base_asset_id": "f8f8b6283d7fa5b672b530cbb84fcccb4ff8dc40f8176ef4544ddb1f1952ad07",
"block_gas_limit": 30000000,
"block_transaction_size_limit": 129024,
"privileged_address": "f034f7859dbf1d775cba16fc175eef249a045d6484a8b9388c9e280267125b73"
}
},
"genesis_state_transition_version": 11,
"consensus": {
"PoAV2": {
"genesis_signing_key": "3ba3b213c8d5ec4d4901ac34b0e924d635384a8b0a5df6e116bce9a783da8e02",
"signing_key_overrides": {}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"chain_config": "chain_config.json",
"table_encoding": {
"Json": {
"filepath": "state_config.json"
}
}
}
Loading

0 comments on commit 301fb60

Please sign in to comment.