diff --git a/examples/network/echo/.gitignore b/examples/network/echo/.gitignore index e69de29..9e8b207 100644 --- a/examples/network/echo/.gitignore +++ b/examples/network/echo/.gitignore @@ -0,0 +1,2 @@ +ids/ +aliases.json \ No newline at end of file diff --git a/examples/network/echo/Makefile b/examples/network/echo/Makefile index e0f6bf7..44d184b 100644 --- a/examples/network/echo/Makefile +++ b/examples/network/echo/Makefile @@ -1,16 +1,19 @@ -MKID=node $(TROUPE)/rt/built/p2p/mkid.js -MKALIASES=node $(TROUPE)/rt/built/p2p/mkaliases.js -START=$(TROUPE)/bin/network.sh +MKID=node $(TROUPE)/p2p-tools/built/mkid.mjs +MKALIASES=node $(TROUPE)/p2p-tools/built/mkaliases.js +START=$(TROUPE)/network.sh echo-server: - $(START) echo-server.trp --id=ids/echo-server.json # --debug --debugp2p echo-client: - $(START) echo-client.trp --id=ids/echo-client.json --aliases=aliases.json --debug --debugp2p + $(START) echo-client.trp --id=ids/echo-client.json --aliases=aliases.json # --debug --debugp2p create-network-identifiers: - mkdir -p ids + mkdir -p ids $(MKID) --outfile=ids/echo-server.json $(MKID) --outfile=ids/echo-client.json $(MKALIASES) --include ids/echo-server.json --include ids/echo-client.json --outfile aliases.json + +remove-network-identifiers: + rm -rf ids + rm -f aliases.json diff --git a/examples/network/echo/README.md b/examples/network/echo/README.md index a194653..59cda89 100644 --- a/examples/network/echo/README.md +++ b/examples/network/echo/README.md @@ -1,7 +1,9 @@ # Echo example -1. *First-time only* Run `make create-network-identifiers`. This command will create two network identifiers in the local subdirectory `ids/`, and an alias file with the generated identifiers. +1. *First-time only* Run `make create-network-identifiers`. This command will + create two network identifiers in the local subdirectory `ids/`, and an alias + file with the generated identifiers. -2. Run the server by running `make echo-server` -3. Open another terminal window and run the client by command `make echo-client` +2. Run the server by running `make echo-server` +3. Open another terminal window and run the client by command `make echo-client` diff --git a/examples/network/echo/aliases.json b/examples/network/echo/aliases.json deleted file mode 100644 index ab75fa2..0000000 --- a/examples/network/echo/aliases.json +++ /dev/null @@ -1 +0,0 @@ -{"echo-server":"QmQCv3hGNJxCWQ9Wtv11MS5Cbzav9WHDheqMKK2DtS6NjQ","echo-client":"QmRbqqm3kVjh68mR1UYa1g2a5aaDpDpUYq9abxa8Qz2iZn"} \ No newline at end of file diff --git a/examples/network/pingpong/.gitignore b/examples/network/pingpong/.gitignore new file mode 100644 index 0000000..475de39 --- /dev/null +++ b/examples/network/pingpong/.gitignore @@ -0,0 +1,6 @@ +node_modules/ +package-lock.json + +ids/ +aliases.json +trustmap.json diff --git a/examples/network/pingpong/Makefile b/examples/network/pingpong/Makefile index 21984e3..4642454 100644 --- a/examples/network/pingpong/Makefile +++ b/examples/network/pingpong/Makefile @@ -1,15 +1,22 @@ -MKID=node $(TROUPE)/rt/built/p2p/mkid.js -MKALIASES=node $(TROUPE)/rt/built/p2p/mkaliases.js -START=$(TROUPE)/bin/network.sh +MKID=node $(TROUPE)/p2p-tools/built/mkid.mjs +MKALIASES=node $(TROUPE)/p2p-tools/built/mkaliases.js +START=$(TROUPE)/network.sh -zero.listener: - $(START) zero.trp --id=ids/pingpong-listener.json --rspawn=true --aliases=aliases.json --debug --debugp2p +listener: + $(START) zero.trp --id=ids/pingpong-listener.json --aliases=aliases.json --rspawn=true --trustmap=trustmap.json # --debug --debugp2p -pingpong.dialer: - $(START) p2ppingpong.trp --id=ids/pingpong-dialer.json --aliases=aliases.json # --debug --debugp2p +dialer: + $(START) p2ppingpong.trp --id=ids/pingpong-dialer.json --aliases=aliases.json # --debug --debugp2p create-network-identifiers: - mkdir -p ids + mkdir -p ids $(MKID) --outfile=ids/pingpong-listener.json $(MKID) --outfile=ids/pingpong-dialer.json $(MKALIASES) --include ids/pingpong-listener.json --include ids/pingpong-dialer.json --outfile aliases.json + npm install + node mktrustmap.mjs --infile aliases.json --outfile trustmap.json + +remove-network-identifiers: + rm -rf ids + rm -f aliases.json + rm -f trustmap.json diff --git a/examples/network/pingpong/README.md b/examples/network/pingpong/README.md new file mode 100644 index 0000000..42f0970 --- /dev/null +++ b/examples/network/pingpong/README.md @@ -0,0 +1,11 @@ +# Ping-Pong example + +1. *First-time only* Run `make create-network-identifiers`. This command will + create two network identifiers in the local subdirectory `ids/`, and an alias + file with the generated identifiers. + +2. Run the Job Listener node, i.e. whereto remotely spawn a `pingpong` instance, + by running the command `make listener`. + +3. Open another terminal window and run the Job Dialer, which sets up the two + instances of `pingpong`, with command `make dialer`. diff --git a/examples/network/pingpong/aliases.json b/examples/network/pingpong/aliases.json deleted file mode 100644 index 3c8d06a..0000000 --- a/examples/network/pingpong/aliases.json +++ /dev/null @@ -1 +0,0 @@ -{"pingpong-listener":"QmVN3uXyTe7ebpPnV9SfF8wRAQxboqo4aLRo42KKsYM1cK","pingpong-dialer":"QmWdt6gvLBh5KjVvMLSjEw1Uc359Qo8sEv8UWPfuRZpLHN"} \ No newline at end of file diff --git a/examples/network/pingpong/mktrustmap.mjs b/examples/network/pingpong/mktrustmap.mjs new file mode 100644 index 0000000..5fb21d7 --- /dev/null +++ b/examples/network/pingpong/mktrustmap.mjs @@ -0,0 +1,19 @@ +'use strict'; + +import * as fs from 'node:fs'; +import pkg from 'yargs'; +const { argv } = pkg; + +(async () => { + let trustmap = []; + const aliases_json = JSON.parse(fs.readFileSync(argv.infile, 'utf-8').toString()); + for (let alias_key in aliases_json) { + trustmap.push({ + level: '#TOP', + id: aliases_json[alias_key] + }); + } + + const outfile = argv.outfile; + fs.writeFile(outfile, JSON.stringify(trustmap), x => console.log(x)); +})(); diff --git a/examples/network/pingpong/package.json b/examples/network/pingpong/package.json new file mode 100644 index 0000000..58d139d --- /dev/null +++ b/examples/network/pingpong/package.json @@ -0,0 +1,14 @@ +{ + "name": "pingpong", + "version": "1.0.0", + "description": "", + "main": "mktrustmap.mjs", + "author": "", + "license": "ISC", + "dependencies": { + "yargs": "^15.3.1" + }, + "devDependencies": { + "@types/yargs": "^15.0.4" + } +}