Compare commits

...

17 Commits

Author SHA1 Message Date
semantic-release-bot 6c5bf40bd1 chore(release): 0.1.0-develop.1 [skip ci]
# [0.1.0-develop.1](https://git.lumeweb.com/LumeWeb/kernel-handshake-node/compare/v0.0.2-develop.1...v0.1.0-develop.1) (2023-07-23)

### Bug Fixes

* await swarm.join ([f08c87c](f08c87c184))
* need to override protomux with our kernel-protomux-client ([61050a5](61050a5a05))

### Features

* add registry api for use with network registry ([f5ce851](f5ce8518bb))
* add status api ([024c810](024c810edf))
2023-07-23 12:57:54 +00:00
Derrick Hammer 024c810edf
feat: add status api 2023-07-23 08:49:33 -04:00
Derrick Hammer cfeb769924
dep: update kernel-network-registry-client 2023-07-22 21:01:14 -04:00
Derrick Hammer ad4eaa4c0a
dep: update kernel-swarm-client 2023-07-22 20:18:03 -04:00
Derrick Hammer 61050a5a05
fix: need to override protomux with our kernel-protomux-client 2023-07-22 20:06:35 -04:00
Derrick Hammer f98b0c59f3
dep: update kernel-swarm-client 2023-07-22 08:36:10 -04:00
Derrick Hammer 139cd814d4
dep: update kernel-swarm-client 2023-07-22 07:18:47 -04:00
Derrick Hammer 95bcdeebb5
dep: kernel-swarm-client 2023-07-22 05:52:14 -04:00
Derrick Hammer c0b91f502a
dep: kernel-swarm-client 2023-07-21 20:36:59 -04:00
Derrick Hammer 7e919a39a8
dep: update kernel-network-registry-client 2023-07-21 13:30:31 -04:00
Derrick Hammer 4fbd78943a
dep: update kernel-network-registry-client 2023-07-19 13:39:21 -04:00
Derrick Hammer f5ce8518bb
feat: add registry api for use with network registry 2023-07-19 12:16:06 -04:00
Derrick Hammer 0a7ceecd9c
dep: update deps 2023-07-12 06:41:18 -04:00
Derrick Hammer 0b8718cf9a
dep: update deps 2023-07-08 07:54:14 -04:00
Derrick Hammer ccf70212f1
Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	npm-shrinkwrap.json
2023-07-08 03:07:21 -04:00
Derrick Hammer acb87c1531
refactor: move to vite bundler 2023-07-08 03:06:59 -04:00
Derrick Hammer f08c87c184
fix: await swarm.join 2023-07-08 00:58:40 -04:00
6 changed files with 1500 additions and 1567 deletions

View File

@ -3,7 +3,16 @@
"@lumeweb/presetter-kernel-module-preset"
],
"config": {
"official": true,
"browser": true
"vite": {
"resolve": {
"alias": {
"timers": "timers-browserify",
"protomux": "@lumeweb/kernel-protomux-client"
}
},
"optimize": {
"node-fetch": "export default undefined;"
}
}
}
}

View File

@ -1 +1,15 @@
# [0.1.0-develop.1](https://git.lumeweb.com/LumeWeb/kernel-handshake-node/compare/v0.0.2-develop.1...v0.1.0-develop.1) (2023-07-23)
### Bug Fixes
* await swarm.join ([f08c87c](https://git.lumeweb.com/LumeWeb/kernel-handshake-node/commit/f08c87c1845b7561c9aea1f7c21cf1f5528f92b7))
* need to override protomux with our kernel-protomux-client ([61050a5](https://git.lumeweb.com/LumeWeb/kernel-handshake-node/commit/61050a5a054686c65a4e1e58035e39b6e37c25d6))
### Features
* add registry api for use with network registry ([f5ce851](https://git.lumeweb.com/LumeWeb/kernel-handshake-node/commit/f5ce8518bb5261fbf25d5281c9f31ead99d735fd))
* add status api ([024c810](https://git.lumeweb.com/LumeWeb/kernel-handshake-node/commit/024c810edf8a9f57693d89d44c785306d3edee89))
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/kernel-handshake-node/compare/v0.0.1...v0.0.2-develop.1) (2023-07-06)

2895
npm-shrinkwrap.json generated

File diff suppressed because it is too large Load Diff

View File

@ -10,27 +10,30 @@
"email": "contact@lumeweb.com"
},
"type": "module",
"version": "0.0.2-develop.1",
"version": "0.1.0-develop.1",
"readme": "ERROR: No README data found!",
"scripts": {
"prepare": "presetter bootstrap",
"build": "shx echo 'export default undefined;' > nop.js; run build",
"semantic-release": "semantic-release"
"build": "run build",
"semantic-release": "semantic-release",
"postinstall": "patch-package"
},
"devDependencies": {
"@lumeweb/presetter-kernel-module-preset": "^0.1.0-develop.30",
"@rollup/plugin-alias": "^5.0.0",
"@lumeweb/presetter-kernel-module-preset": "^0.1.0-develop.43",
"patch-package": "^7.0.0",
"presetter": "*",
"rollup-plugin-ignore-import": "^1.3.2"
"timers-browserify": "^2.0.12",
"vite": "^4.4.0"
},
"dependencies": {
"@i2labs/dns": "^1.0.1",
"@lumeweb/kernel-swarm-client": "^0.0.2-develop.6",
"@lumeweb/libhyperproxy": "^0.0.2-develop.1",
"@lumeweb/libkernel": "^0.1.0-develop.14",
"@lumeweb/kernel-network-registry-client": "^0.1.0-develop.5",
"@lumeweb/kernel-protomux-client": "^0.0.2-develop.12",
"@lumeweb/kernel-swarm-client": "^0.1.0-develop.2",
"@lumeweb/libhyperproxy": "^0.0.2-develop.2",
"@lumeweb/libkernel": "^0.1.0-develop.20",
"assert": "^2.0.0",
"hsd": "^5.0.1",
"p-defer": "^4.0.0",
"timers-browserify": "^2.0.12"
"p-defer": "^4.0.0"
}
}

View File

@ -1,67 +0,0 @@
// @ts-nocheck
import * as import0 from "@rollup/plugin-json";
import * as import1 from "@rollup/plugin-node-resolve";
import * as import2 from "@rollup/plugin-commonjs";
import * as import3 from "@rollup/plugin-graphql";
import * as import4 from "@rollup/plugin-image";
import * as import5 from "@rollup/plugin-yaml";
import * as import6 from "rollup-plugin-postcss";
import * as import7 from "rollup-plugin-visualizer";
import * as import8 from "@rollup/plugin-wasm";
import * as import9 from "@rollup/plugin-alias";
import * as import10 from "rollup-plugin-ignore-import";
export default {
input: "build/index.js",
output: [
{
file: "lib/index.js",
format: "cjs",
sourcemap: true,
inlineDynamicImports: true,
},
],
plugins: [
import0.default(...([] as const)),
import10.default({
include: [
"**/multiSocket/tcpSocket.js",
"**/node-fetch/**",
"**/urkel/lib/file.js",
],
exclude: [],
}),
import9.default({
entries: {
timers: "timers-browserify",
stream: "./nop.js",
blgr: "blgr/lib/fs-browser.js",
},
}),
import1.default(
...([
{
browser: true,
preferBuiltins: false,
dedupe: [
"@lumeweb/libkernel",
"@lumeweb/libweb",
"@lumeweb/libportal",
],
},
] as const),
),
import2.default(
...([{ extensions: [".js", ".jsx", ".ts", ".tsx"] }] as const),
),
import10.default({
include: [/.*commonjs-external/],
exclude: [],
}),
import3.default(...([] as const)),
import4.default(...([] as const)),
import5.default(...([] as const)),
import6.default(...([{ inject: { insertAt: "top" } }] as const)),
import7.visualizer(...([] as const)),
import8.default(...([{ targetEnv: "auto-inline" }] as const)),
],
};

View File

@ -1,6 +1,7 @@
import type { ActiveQuery } from "@lumeweb/libkernel/module";
import { addHandler, handleMessage } from "@lumeweb/libkernel/module";
import { createClient } from "@lumeweb/kernel-swarm-client";
import { createClient as createSwarmClient } from "@lumeweb/kernel-swarm-client";
import { createClient as createNetworkRegistryClient } from "@lumeweb/kernel-network-registry-client";
import {
createServer,
DummySocket,
@ -13,6 +14,7 @@ import dns from "@i2labs/dns";
import assert from "assert";
const PROTOCOL = "lumeweb.proxy.handshake";
const TYPES = ["blockchain"];
onmessage = handleMessage;
@ -22,6 +24,8 @@ let moduleLoaded: Promise<void> = new Promise((resolve) => {
});
addHandler("presentKey", handlePresentKey);
addHandler("register", handleRegister);
addHandler("status", handleStatus, { receiveUpdates: true });
addHandler("ready", handleReady);
addHandler("query", handleQuery);
@ -29,6 +33,8 @@ let swarm;
let proxy: MultiSocketProxy;
let node: SPVNode;
const networkRegistry = createNetworkRegistryClient();
function resolveWithPeers(resolve: Function) {
if (!node.pool.peers.head()) {
node.pool.on("peer", () => {
@ -61,7 +67,7 @@ function resolveWithPeers(resolve: Function) {
}
async function handlePresentKey(aq: ActiveQuery) {
swarm = createClient();
swarm = createSwarmClient();
const peerConnected = defer();
node = new SPVNode({
@ -148,7 +154,7 @@ async function handlePresentKey(aq: ActiveQuery) {
peerConnected.resolve();
});
swarm.join(PROTOCOL);
await swarm.join(PROTOCOL);
await swarm.start();
await peerConnected.promise;
@ -188,3 +194,44 @@ async function handleQuery(aq: ActiveQuery) {
aq.reject((e as Error).message);
}
}
async function handleRegister(aq: ActiveQuery) {
await networkRegistry.registerNetwork(TYPES);
aq.respond();
}
async function handleStatus(aq: ActiveQuery) {
let chainProgress = node.chain.getProgress();
let chainPeers = node.pool.peers.size();
const chainProgressListener = node.chain.on("tip", () => {
chainProgress = node.chain.getProgress();
sendUpdate();
});
function peersListener() {
chainPeers = node.pool.peers.size();
sendUpdate();
}
node.pool.on("peer", peersListener);
node.pool.on("peer close", peersListener);
function sendUpdate() {
aq.sendUpdate({
sync: chainProgress * 100,
peers: chainPeers,
ready: node.chain.synced,
});
}
aq.setReceiveUpdate?.(() => {
node.chain.off("tip", chainProgressListener);
node.pool.off("peer", peersListener);
node.pool.off("peer close", peersListener);
aq.respond();
});
sendUpdate();
}