Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
208 changes: 104 additions & 104 deletions Cargo.lock

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions light-client-bin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ homepage = "https://github.com/nervosnetwork/ckb-light-client"
repository = "https://github.com/nervosnetwork/ckb-light-client"

[dependencies]
ckb-async-runtime = "0.121.0-rc1"
ckb-chain-spec = "0.121.0-rc1"
ckb-network = "0.121.0-rc1"
ckb-stop-handler = "0.121.0-rc1"
ckb-resource = "0.121.0-rc1"
ckb-jsonrpc-types = "0.121.0-rc1"
ckb-types = "0.121.0-rc1"
ckb-traits = "0.121.0-rc1"
ckb-systemtime = "0.121.0-rc1"
ckb-async-runtime = "0.121.0"
ckb-chain-spec = "0.121.0"
ckb-network = "0.121.0"
ckb-stop-handler = "0.121.0"
ckb-resource = "0.121.0"
ckb-jsonrpc-types = "0.121.0"
ckb-types = "0.121.0"
ckb-traits = "0.121.0"
ckb-systemtime = "0.121.0"

ckb-light-client-lib = { path = "../light-client-lib" }
clap = { version = "4", features = ["cargo"] }
Expand Down
5 changes: 4 additions & 1 deletion light-client-bin/src/subcmds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ use std::sync::{Arc, RwLock};
use ckb_async_runtime::new_global_runtime;
use ckb_chain_spec::ChainSpec;
use ckb_network::{
tokio, CKBProtocol, CKBProtocolHandler, Flags, NetworkService, NetworkState, SupportProtocols,
network::TransportType, tokio, CKBProtocol, CKBProtocolHandler, Flags, NetworkService,
NetworkState, SupportProtocols,
};
use ckb_resource::Resource;
use ckb_stop_handler::{broadcast_exit_signals, wait_all_ckb_services_exit};
Expand Down Expand Up @@ -128,6 +129,8 @@ impl RunConfig {
clap::crate_version!().to_owned(),
Flags::DISCOVERY,
),
// Usually native light-client only connects to peers through TCP
TransportType::Tcp,
)
.start(&handle)
.map_err(|err| {
Expand Down
36 changes: 18 additions & 18 deletions light-client-lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ repository = "https://github.com/nervosnetwork/ckb-light-client"
crate-type = ["cdylib", "rlib"]

[dependencies]
ckb-app-config = "0.121.0-rc1"
ckb-constant = "0.121.0-rc1"
ckb-types = "0.121.0-rc1"
ckb-network = "0.121.0-rc1"
ckb-jsonrpc-types = "0.121.0-rc1"
ckb-error = "0.121.0-rc1"
ckb-script = "0.121.0-rc1"
ckb-chain-spec = "0.121.0-rc1"
ckb-traits = "0.121.0-rc1"
ckb-resource = "0.121.0-rc1"
ckb-verification = "0.121.0-rc1"
ckb-hash = "0.121.0-rc1"
ckb-systemtime = "0.121.0-rc1"
ckb-app-config = "0.121.0"
ckb-constant = "0.121.0"
ckb-types = "0.121.0"
ckb-network = "0.121.0"
ckb-jsonrpc-types = "0.121.0"
ckb-error = "0.121.0"
ckb-script = "0.121.0"
ckb-chain-spec = "0.121.0"
ckb-traits = "0.121.0"
ckb-resource = "0.121.0"
ckb-verification = "0.121.0"
ckb-hash = "0.121.0"
ckb-systemtime = "0.121.0"

log = "0.4.14"
path-clean = "0.1.0"
Expand Down Expand Up @@ -65,11 +65,11 @@ serde_json = "1.0.134"
wasm-bindgen-test = "0.3.45"

[dev-dependencies]
ckb-shared = "0.121.0-rc1"
ckb-chain = "0.121.0-rc1"
ckb-tx-pool = "0.121.0-rc1"
ckb-store = "0.121.0-rc1"
ckb-systemtime = { version = "0.121.0-rc1", features = ["enable_faketime"] }
ckb-shared = "0.121.0"
ckb-chain = "0.121.0"
ckb-tx-pool = "0.121.0"
ckb-store = "0.121.0"
ckb-systemtime = { version = "0.121.0", features = ["enable_faketime"] }
tempfile = "3.0"
rand = "0.8"
serde_json = "1.0"
Expand Down
3 changes: 2 additions & 1 deletion light-client-lib/src/tests/utils/chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use ckb_app_config::{BlockAssemblerConfig, NetworkConfig};
use ckb_chain::{start_chain_services, ChainController};
use ckb_chain_spec::{consensus::Consensus, ChainSpec};
use ckb_jsonrpc_types::JsonBytes;
use ckb_network::{Flags, NetworkController, NetworkService, NetworkState};
use ckb_network::{network::TransportType, Flags, NetworkController, NetworkService, NetworkState};
use ckb_resource::Resource;
use ckb_shared::{Shared, SharedBuilder};
use ckb_types::{core, prelude::*};
Expand Down Expand Up @@ -143,6 +143,7 @@ fn dummy_network(shared: &Shared) -> NetworkController {
"test".to_string(),
Flags::all(),
),
TransportType::Tcp,
)
.start(shared.async_handle())
.expect("Start network service failed")
Expand Down
2 changes: 1 addition & 1 deletion wasm/light-client-js/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ckb-light-client-js",
"version": "1.0.1",
"version": "1.0.2",
"main": "dist/index.js",
"license": "MIT",
"devDependencies": {
Expand Down
6 changes: 4 additions & 2 deletions wasm/light-client-js/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ class LightClient {
* Start the light client.
* @param networkSetting Network setting for light-client-wasm. You can specify config if you are using mainnet or testnet. You must provide config and spec if you are using devnet.
* @param logLevel Log Level for light-client-db-worker and light-client-wasm
* @param transportType Specify transport type. `ws` stands for non-secure WebSocket, while `wss` stands for WebSocket over SSL.
*/
async start(networkSetting: NetworkSetting, networkSecretKey: Hex, logLevel: "trace" | "debug" | "info" | "error" = "info") {
async start(networkSetting: NetworkSetting, networkSecretKey: Hex, logLevel: "trace" | "debug" | "info" | "error" = "info", transportType: "ws" | "wss" = "ws") {
this.dbWorker.postMessage({
inputBuffer: this.inputBuffer,
outputBuffer: this.outputBuffer,
Expand All @@ -62,7 +63,8 @@ class LightClient {
networkFlag: networkSetting,
logLevel: logLevel,
traceLogBuffer: this.traceLogBuffer,
networkSecretKey: bytesFrom(networkSecretKey)
networkSecretKey: bytesFrom(networkSecretKey),
transportType
} as LightClientWorkerInitializeOptions);
await new Promise<void>((res, rej) => {
this.dbWorker.onmessage = () => res();
Expand Down
2 changes: 1 addition & 1 deletion wasm/light-client-js/src/lightclient.worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ onmessage = async (evt) => {
if (!loaded) {
const data = evt.data as LightClientWorkerInitializeOptions;
wasmModule.set_shared_array(data.inputBuffer, data.outputBuffer);
await wasmModule.light_client(data.networkFlag, data.logLevel, data.networkSecretKey);
await wasmModule.light_client(data.networkFlag, data.logLevel, data.networkSecretKey, data.transportType);
self.postMessage({});
loaded = true;
return;
Expand Down
1 change: 1 addition & 0 deletions wasm/light-client-js/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ interface WorkerInitializeOptions {
inputBuffer: SharedArrayBuffer;
outputBuffer: SharedArrayBuffer;
logLevel: string;
transportType: "ws" | "wss";
}
interface DbWorkerInitializeOptions extends WorkerInitializeOptions {
}
Expand Down
18 changes: 9 additions & 9 deletions wasm/light-client-wasm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ log = "0.4"
wasm-logger = "0.2"
serde-wasm-bindgen = "0.6.5"

ckb-chain-spec = "0.121.0-rc1"
ckb-resource = "0.121.0-rc1"
ckb-network = "0.121.0-rc1"
ckb-async-runtime = "0.121.0-rc1"
ckb-types = "0.121.0-rc1"
ckb-jsonrpc-types = "0.121.0-rc1"
ckb-stop-handler = "0.121.0-rc1"
ckb-systemtime = "0.121.0-rc1"
ckb-app-config = "0.121.0-rc1"
ckb-chain-spec = "0.121.0"
ckb-resource = "0.121.0"
ckb-network = "0.121.0"
ckb-async-runtime = "0.121.0"
ckb-types = "0.121.0"
ckb-jsonrpc-types = "0.121.0"
ckb-stop-handler = "0.121.0"
ckb-systemtime = "0.121.0"
ckb-app-config = "0.121.0"


getrandom = { version = "0.2", features = ["js"] }
Expand Down
23 changes: 21 additions & 2 deletions wasm/light-client-wasm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ use wasm_bindgen::prelude::*;
use ckb_chain_spec::{consensus::Consensus, ChainSpec};
use ckb_jsonrpc_types::{JsonBytes, Transaction};
use ckb_network::{
extract_peer_id, CKBProtocol, CKBProtocolHandler, Flags, NetworkController, NetworkService,
NetworkState, SupportProtocols,
extract_peer_id, network::TransportType, CKBProtocol, CKBProtocolHandler, Flags,
NetworkController, NetworkService, NetworkState, SupportProtocols,
};
use ckb_resource::Resource;
use ckb_stop_handler::broadcast_exit_signals;
Expand Down Expand Up @@ -79,11 +79,20 @@ enum NetworkSetting {
DevNet { spec: String, config: String },
}

#[derive(Deserialize, Debug)]
enum WasmTransportType {
#[serde(rename = "ws")]
Ws,
#[serde(rename = "wss")]
Wss,
}

#[wasm_bindgen]
pub async fn light_client(
network_setting: JsValue,
log_level: String,
network_secret_key: JsValue,
wasm_transport_type: JsValue,
) -> Result<(), JsValue> {
if !status(0b0) {
return Err(JsValue::from_str("Can't start twice"));
Expand All @@ -94,6 +103,12 @@ pub async fn light_client(
));
let network_flag: NetworkSetting = serde_wasm_bindgen::from_value(network_setting)?;

let wasm_transport_type: WasmTransportType =
serde_wasm_bindgen::from_value(wasm_transport_type)?;
debug!(
"Starting with wasm transport type = {:?}",
wasm_transport_type
);
let mut config = match &network_flag {
NetworkSetting::TestNet { config } => config
.as_ref()
Expand Down Expand Up @@ -217,6 +232,10 @@ pub async fn light_client(
"0.1.0".to_owned(),
Flags::DISCOVERY,
),
match wasm_transport_type {
WasmTransportType::Ws => TransportType::Ws,
WasmTransportType::Wss => TransportType::Wss,
},
)
.start(&handle)
.map_err(|err| {
Expand Down
Loading