mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-06 10:18:02 +00:00
Remove substrate-in-the-browser (#9541)
* Comment out browser stuff * Remove browser stuff * Remove more wasm transport code * Remove ExtTransport and rework how telemetry initialises. * Change (most) wasm-timer using code to use std::time * Rename CI-job * Aura does not compile for wasm * Remove testing in the browser on CI * Update README * Leave `StreamSink` be * fmt
This commit is contained in:
@@ -92,12 +92,6 @@ frame-benchmarking-cli = { version = "4.0.0-dev", optional = true, path = "../..
|
||||
node-inspect = { version = "0.9.0-dev", optional = true, path = "../inspect" }
|
||||
try-runtime-cli = { version = "0.10.0-dev", optional = true, path = "../../../utils/frame/try-runtime/cli" }
|
||||
|
||||
# WASM-specific dependencies
|
||||
wasm-bindgen = { version = "0.2.73", optional = true }
|
||||
wasm-bindgen-futures = { version = "0.4.18", optional = true }
|
||||
browser-utils = { package = "substrate-browser-utils", path = "../../../utils/browser", optional = true, version = "0.10.0-dev"}
|
||||
libp2p-wasm-ext = { version = "0.29", features = ["websocket"], optional = true }
|
||||
|
||||
[target.'cfg(target_arch="x86_64")'.dependencies]
|
||||
node-executor = { version = "3.0.0-dev", path = "../executor", features = [
|
||||
"wasmtime",
|
||||
@@ -143,13 +137,7 @@ path = "../../../client/cli"
|
||||
optional = true
|
||||
|
||||
[features]
|
||||
default = ["cli"]
|
||||
browser = [
|
||||
"browser-utils",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"libp2p-wasm-ext",
|
||||
]
|
||||
default = [ "cli" ]
|
||||
cli = [
|
||||
"node-executor/wasmi-errno",
|
||||
"node-inspect",
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
pkg
|
||||
@@ -1,10 +0,0 @@
|
||||
# How to run this demo
|
||||
|
||||
```sh
|
||||
# If necessary, install wasm-bindgen
|
||||
# The version must match that used when building the browser demo.
|
||||
cargo install --version 0.2.67 wasm-bindgen-cli
|
||||
|
||||
# Run the build script
|
||||
./build.sh
|
||||
```
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
set -e -x
|
||||
cargo +nightly build --release -p node-cli --target wasm32-unknown-unknown --no-default-features --features browser -Z features=itarget
|
||||
wasm-bindgen ../../../../target/wasm32-unknown-unknown/release/node_cli.wasm --out-dir pkg --target web
|
||||
python -m http.server 8000
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB |
@@ -1,39 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
||||
<title>Substrate node</title>
|
||||
<link rel="shortcut icon" href="/favicon.png" />
|
||||
<script type="module">
|
||||
import { start_client, default as init } from './pkg/node_cli.js';
|
||||
|
||||
function log(msg) {
|
||||
document.getElementsByTagName('body')[0].innerHTML += msg + '\n';
|
||||
}
|
||||
|
||||
async function start() {
|
||||
log('Loading WASM');
|
||||
await init('./pkg/node_cli_bg.wasm');
|
||||
log('Fetching chain spec');
|
||||
const chain_spec_response = await fetch("https://raw.githubusercontent.com/paritytech/substrate/master/bin/node/cli/res/flaming-fir.json");
|
||||
const chain_spec_text = await chain_spec_response.text();
|
||||
|
||||
// Build our client.
|
||||
let client = await start_client(chain_spec_text, 'info');
|
||||
log('Client started');
|
||||
|
||||
client.rpcSubscribe('{"method":"chain_subscribeNewHead","params":[],"id":1,"jsonrpc":"2.0"}',
|
||||
(r) => log("New chain head: " + r));
|
||||
|
||||
setInterval(() => {
|
||||
client
|
||||
.rpcSend('{"method":"system_localPeerId","params":[],"id":1,"jsonrpc":"2.0"}')
|
||||
.then((r) => log("Local PeerId: " + r));
|
||||
}, 20000);
|
||||
}
|
||||
|
||||
start();
|
||||
</script>
|
||||
</head>
|
||||
<body style="white-space: pre"></body>
|
||||
</html>
|
||||
@@ -1,57 +0,0 @@
|
||||
// This file is part of Substrate.
|
||||
|
||||
// Copyright (C) 2019-2021 Parity Technologies (UK) Ltd.
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::chain_spec::ChainSpec;
|
||||
use browser_utils::{browser_configuration, init_logging, set_console_error_panic_hook, Client};
|
||||
use log::info;
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
/// Starts the client.
|
||||
#[wasm_bindgen]
|
||||
pub fn start_client(chain_spec: Option<String>, log_level: String) -> Result<Client, JsValue> {
|
||||
start_inner(chain_spec, log_level).map_err(|err| JsValue::from_str(&err.to_string()))
|
||||
}
|
||||
|
||||
fn start_inner(
|
||||
chain_spec: Option<String>,
|
||||
log_directives: String,
|
||||
) -> Result<Client, Box<dyn std::error::Error>> {
|
||||
set_console_error_panic_hook();
|
||||
init_logging(&log_directives)?;
|
||||
let chain_spec = match chain_spec {
|
||||
Some(chain_spec) => ChainSpec::from_json_bytes(chain_spec.as_bytes().to_vec())
|
||||
.map_err(|e| format!("{:?}", e))?,
|
||||
None => crate::chain_spec::development_config(),
|
||||
};
|
||||
|
||||
let config = browser_configuration(chain_spec)?;
|
||||
|
||||
info!("Substrate browser node");
|
||||
info!("✌️ version {}", config.impl_version);
|
||||
info!("❤️ by Parity Technologies, 2017-2021");
|
||||
info!("📋 Chain specification: {}", config.chain_spec.name());
|
||||
info!("🏷 Node name: {}", config.network.node_name);
|
||||
info!("👤 Role: {:?}", config.role);
|
||||
|
||||
// Create the service. This is the most heavy initialization step.
|
||||
let (task_manager, rpc_handlers) = crate::service::new_light_base(config)
|
||||
.map(|(components, rpc_handlers, _, _, _)| (components, rpc_handlers))
|
||||
.map_err(|e| format!("{:?}", e))?;
|
||||
|
||||
Ok(browser_utils::start_client(task_manager, rpc_handlers))
|
||||
}
|
||||
@@ -34,15 +34,11 @@ pub mod chain_spec;
|
||||
|
||||
#[macro_use]
|
||||
mod service;
|
||||
#[cfg(feature = "browser")]
|
||||
mod browser;
|
||||
#[cfg(feature = "cli")]
|
||||
mod cli;
|
||||
#[cfg(feature = "cli")]
|
||||
mod command;
|
||||
|
||||
#[cfg(feature = "browser")]
|
||||
pub use browser::*;
|
||||
#[cfg(feature = "cli")]
|
||||
pub use cli::*;
|
||||
#[cfg(feature = "cli")]
|
||||
|
||||
@@ -441,12 +441,7 @@ pub fn new_light_base(
|
||||
.clone()
|
||||
.filter(|x| !x.is_empty())
|
||||
.map(|endpoints| -> Result<_, sc_telemetry::Error> {
|
||||
#[cfg(feature = "browser")]
|
||||
let transport = Some(sc_telemetry::ExtTransport::new(libp2p_wasm_ext::ffi::websocket_transport()));
|
||||
#[cfg(not(feature = "browser"))]
|
||||
let transport = None;
|
||||
|
||||
let worker = TelemetryWorker::with_transport(16, transport)?;
|
||||
let worker = TelemetryWorker::new(16)?;
|
||||
let telemetry = worker.handle().new_telemetry(endpoints);
|
||||
Ok((worker, telemetry))
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user