mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 04:37:57 +00:00
8676c25ef4
* executor: Use non wasmi-specific execution in tests. * executor: Move all runtime execution tests into tests file. * executor: Use test_case macro to easily execute tests with different Wasm execution methods. * executor: Convert errors to strings with Display, not Debug. * node-executor: Rewrite benchmarks with criterion. They were not passing compilation before and criterion seems to be more widely used in Substrate. * executor: Begin implementation of Wasm runtime. The implementation demonstrates the outline of the execution, but does not link against the external host functions. * executor: Define and implement basic FunctionExecutor. The SandboxCapabilities::invoke is still left unimplemented. * executor: Implement host function trampoline generation. * executor: Instantiate and link runtime module to env module. * executor: Provide input data during wasmtime execution. * executor: Implement SandboxCapabilites::invoke for wasmtime executor. * executor: Integrate and test wasmtime execution method. * executor: Improve FunctionExecution error messages. * Scope the unsafe blocks to be smaller. * Rename TrampolineState to EnvState. * Let EnvState own its own compiler instead of unsafe lifetime cast. * Refactor out some common wasmi/wasmtime logic. * Typos and cosmetic changes. * More trampoline comments. * Cargo.lock update. * cli: CLI option for running Substrate with compiled Wasm execution. * executor: Switch dependency from fork to official wasmtime repo. * Quiet down cranelift logs. * Explicitly catch panics during host calls. We do this to ensure that panics do not cross language boundaries. * Additional checks and clarifications in make_trampoline. * Fixes after merge from master and panic safety for wasmtime instantiation.
125 lines
5.4 KiB
TOML
125 lines
5.4 KiB
TOML
[package]
|
|
name = "node-cli"
|
|
version = "2.0.0"
|
|
authors = ["Parity Technologies <admin@parity.io>"]
|
|
description = "Substrate node implementation in Rust."
|
|
build = "build.rs"
|
|
edition = "2018"
|
|
default-run = "substrate"
|
|
|
|
[badges]
|
|
travis-ci = { repository = "paritytech/substrate", branch = "master" }
|
|
maintenance = { status = "actively-developed" }
|
|
is-it-maintained-issue-resolution = { repository = "paritytech/substrate" }
|
|
is-it-maintained-open-issues = { repository = "paritytech/substrate" }
|
|
|
|
[[bin]]
|
|
name = "substrate"
|
|
path = "bin/main.rs"
|
|
required-features = ["cli"]
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
log = "0.4.8"
|
|
futures = "0.1.29"
|
|
jsonrpc-core = "13.2.0"
|
|
codec = { package = "parity-scale-codec", version = "1.0.0" }
|
|
sr-io = { path = "../../core/sr-io" }
|
|
client = { package = "substrate-client", path = "../../core/client" }
|
|
primitives = { package = "substrate-primitives", path = "../../core/primitives" }
|
|
inherents = { package = "substrate-inherents", path = "../../core/inherents" }
|
|
node-runtime = { path = "../runtime" }
|
|
node-rpc = { path = "../rpc" }
|
|
node-primitives = { path = "../primitives" }
|
|
hex-literal = "0.2.1"
|
|
substrate-rpc = { package = "substrate-rpc", path = "../../core/rpc" }
|
|
substrate-basic-authorship = { path = "../../core/basic-authorship" }
|
|
substrate-service = { path = "../../core/service", default-features = false }
|
|
chain-spec = { package = "substrate-chain-spec", path = "../../core/chain-spec" }
|
|
transaction_pool = { package = "substrate-transaction-pool", path = "../../core/transaction-pool" }
|
|
network = { package = "substrate-network", path = "../../core/network" }
|
|
babe = { package = "substrate-consensus-babe", path = "../../core/consensus/babe" }
|
|
babe-primitives = { package = "substrate-consensus-babe-primitives", path = "../../core/consensus/babe/primitives" }
|
|
grandpa = { package = "substrate-finality-grandpa", path = "../../core/finality-grandpa" }
|
|
grandpa_primitives = { package = "substrate-finality-grandpa-primitives", path = "../../core/finality-grandpa/primitives" }
|
|
sr-primitives = { path = "../../core/sr-primitives" }
|
|
node-executor = { path = "../executor" }
|
|
substrate-telemetry = { package = "substrate-telemetry", path = "../../core/telemetry" }
|
|
structopt = "0.3.3"
|
|
keyring = { package = "substrate-keyring", path = "../../core/keyring" }
|
|
indices = { package = "srml-indices", path = "../../srml/indices" }
|
|
timestamp = { package = "srml-timestamp", path = "../../srml/timestamp", default-features = false }
|
|
rand = "0.7.2"
|
|
finality_tracker = { package = "srml-finality-tracker", path = "../../srml/finality-tracker", default-features = false }
|
|
contracts = { package = "srml-contracts", path = "../../srml/contracts" }
|
|
system = { package = "srml-system", path = "../../srml/system" }
|
|
balances = { package = "srml-balances", path = "../../srml/balances" }
|
|
transaction-payment = { package = "srml-transaction-payment", path = "../../srml/transaction-payment" }
|
|
support = { package = "srml-support", path = "../../srml/support", default-features = false }
|
|
im_online = { package = "srml-im-online", path = "../../srml/im-online", default-features = false }
|
|
serde = { version = "1.0.101", features = [ "derive" ] }
|
|
client_db = { package = "substrate-client-db", path = "../../core/client/db", default-features = false }
|
|
offchain = { package = "substrate-offchain", path = "../../core/offchain" }
|
|
|
|
# CLI-specific dependencies
|
|
tokio = { version = "0.1.22", optional = true }
|
|
exit-future = { version = "0.1.4", optional = true }
|
|
substrate-cli = { path = "../../core/cli", optional = true }
|
|
transaction-factory = { path = "../../test-utils/transaction-factory", optional = true }
|
|
ctrlc = { version = "3.1.3", features = ["termination"], optional = true }
|
|
|
|
# WASM-specific dependencies
|
|
libp2p = { version = "0.12.0", default-features = false, optional = true }
|
|
clear_on_drop = { version = "0.2.3", features = ["no_cc"], optional = true } # Imported just for the `no_cc` feature
|
|
console_error_panic_hook = { version = "0.1.1", optional = true }
|
|
console_log = { version = "0.1.2", optional = true }
|
|
js-sys = { version = "0.3.22", optional = true }
|
|
wasm-bindgen = { version = "0.2.45", optional = true }
|
|
wasm-bindgen-futures = { version = "0.3.22", optional = true }
|
|
kvdb-memorydb = { git = "https://github.com/paritytech/parity-common", rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d", optional = true }
|
|
rand6 = { package = "rand", version = "0.6", features = ["wasm-bindgen"], optional = true } # Imported just for the `wasm-bindgen` feature
|
|
|
|
[dev-dependencies]
|
|
keystore = { package = "substrate-keystore", path = "../../core/keystore" }
|
|
babe = { package = "substrate-consensus-babe", path = "../../core/consensus/babe", features = ["test-helpers"] }
|
|
consensus-common = { package = "substrate-consensus-common", path = "../../core/consensus/common" }
|
|
service-test = { package = "substrate-service-test", path = "../../core/service/test" }
|
|
futures03 = { package = "futures-preview", version = "0.3.0-alpha.19" }
|
|
tempfile = "3.1.0"
|
|
|
|
[build-dependencies]
|
|
substrate-cli = { package = "substrate-cli", path = "../../core/cli" }
|
|
structopt = "0.3.3"
|
|
vergen = "3.0.4"
|
|
|
|
[features]
|
|
default = ["cli"]
|
|
browser = [
|
|
"clear_on_drop",
|
|
"console_error_panic_hook",
|
|
"console_log",
|
|
"js-sys",
|
|
"libp2p",
|
|
"wasm-bindgen",
|
|
"wasm-bindgen-futures",
|
|
"kvdb-memorydb",
|
|
"rand/wasm-bindgen",
|
|
"rand6"
|
|
]
|
|
cli = [
|
|
"substrate-cli",
|
|
"transaction-factory",
|
|
"tokio",
|
|
"exit-future",
|
|
"ctrlc",
|
|
"substrate-service/rocksdb"
|
|
]
|
|
wasmtime = [
|
|
"cli",
|
|
"node-executor/wasmtime",
|
|
"substrate-cli/wasmtime",
|
|
"substrate-service/wasmtime",
|
|
]
|