Implement peer package to send messages between peers (#279)

* Initial implementation of class and discoving other peers

* Implement peer connection and sending messages between peers

* Add react app and use peer package for broadcasting

* Maintain stream for each remote peer

* Refactor code in peer package

* Add serve package for react-app

* Add readme for running react app

* Add peer package readme

* Add logs for events with details

* Add a chat CLI using peer package (#280)

* Add a flag to instantiate Peer for nodejs

* Add a basic chat CLI using peer

* Add a signal server arg to chat CLI

* Add instructions for chat CLI

* Fix typescript and ESM issues after adding peer package (#282)

* Fix build issues in util package

* Update eslint TS plugins

* Scope react app package name

* Convert cli package back to CJS and dynamically import ESM

* Upgrade ts-node version

* Fix tests

* Setup a relay node and pubsub based discovery (#284)

* Add a script to setup a relay node

* Use pubsub based peer discovery

* Add peer multiaddr to connection log

* Catch relay node dial errors

* Increase discovery interval and dial all mutiaddr

* Add UI to display self peer ID and multiaddrs

* Add UI for displaying live remote connections

* Send js objects in peer broadcast messages

* Add react-peer package for using peer in react app

* Reduce disconnect frequency between peers (#287)

* Restrict number of max concurrent dials per peer

* Increase hop relay timeout to 1 day

* Self review changes

* Review changes

* Increase pubsub discovery interval and add steps to create a peer id  (#290)

* Increase pubsub discovery interval

* Disable autodial to avoid peer dials without protocol on a reconnect

* Add steps to create a peer id and use for relay node

* Add back dependency to run signalling server

* Avoid bootstrapping and dial to relay node directly

Co-authored-by: prathamesh0 <42446521+prathamesh0@users.noreply.github.com>
Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>
This commit is contained in:
2023-01-10 20:10:27 +05:30
committed by GitHub
co-authored by prathamesh0 prathamesh
parent aa4a954330
commit cd29b47ecc
82 changed files with 17136 additions and 2475 deletions
+3 -3
View File
@@ -12,8 +12,8 @@
"@types/chai": "^4.2.18",
"@types/chai-spies": "^1.0.3",
"@types/pluralize": "^0.0.29",
"@typescript-eslint/eslint-plugin": "^4.25.0",
"@typescript-eslint/parser": "^4.25.0",
"@typescript-eslint/eslint-plugin": "^5.47.1",
"@typescript-eslint/parser": "^5.47.1",
"chai": "^4.3.4",
"chai-spies": "^1.0.0",
"eslint": "^7.27.0",
@@ -27,7 +27,7 @@
"hardhat": "^2.3.0",
"mocha": "^8.4.0",
"nodemon": "^2.0.7",
"ts-node": "^10.0.0",
"ts-node": "^10.2.1",
"typescript": "^4.3.2"
},
"bin": {
+1 -1
View File
@@ -102,7 +102,7 @@ describe('wasm loader tests', () => {
}
expect.fail('wasm code should throw error');
} catch (error) {
} catch (error: any) {
expect(error).to.be.instanceof(WebAssembly.RuntimeError);
expect(error.message).to.equal('unreachable');
}
+2 -2
View File
@@ -576,7 +576,7 @@ describe('numbers wasm tests', () => {
it('should throw an error for DECIMAL128_PMIN times DECIMAL128_NMAX', async () => {
try {
await testBigDecimalTimes(await __newString(DECIMAL128_PMIN), await __newString(DECIMAL128_NMAX));
} catch (error) {
} catch (error: any) {
expect(error.message).to.be.equal('Big decimal exponent \'-12286\' is outside the \'-6143\' to \'6144\' range');
}
});
@@ -621,7 +621,7 @@ describe('numbers wasm tests', () => {
it('should throw an error for DECIMAL128_PMIN divideBy DECIMAL128_MAX', async () => {
try {
await testBigDecimalDividedBy(await __newString(DECIMAL128_PMIN), await __newString(DECIMAL128_MAX));
} catch (error) {
} catch (error: any) {
expect(error.message).to.be.equal('Big decimal exponent \'-12288\' is outside the \'-6143\' to \'6144\' range');
}
});
+3 -2
View File
@@ -31,6 +31,7 @@ import {
} from '@cerc-io/util';
import { Context, GraphData, instantiate } from './loader';
import { ObjectLiteral } from 'typeorm';
const log = debug('vulcanize:graph-watcher');
@@ -281,7 +282,7 @@ export class GraphWatcher {
this._indexer = indexer;
}
async getEntity<Entity> (
async getEntity<Entity extends ObjectLiteral> (
entity: new () => Entity,
id: string,
relationsMap: Map<any, { [key: string]: any }>,
@@ -305,7 +306,7 @@ export class GraphWatcher {
}
}
async getEntities<Entity> (
async getEntities<Entity extends ObjectLiteral> (
entity: new () => Entity,
relationsMap: Map<any, { [key: string]: any }>,
block: BlockHeight,