libp2p 0.39.5 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/src/address-manager/index.d.ts +18 -2
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +18 -5
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/circuit/auto-relay.d.ts +2 -2
- package/dist/src/circuit/auto-relay.d.ts.map +1 -1
- package/dist/src/circuit/auto-relay.js +12 -12
- package/dist/src/circuit/auto-relay.js.map +1 -1
- package/dist/src/circuit/index.d.ts +13 -3
- package/dist/src/circuit/index.d.ts.map +1 -1
- package/dist/src/circuit/index.js +1 -1
- package/dist/src/circuit/index.js.map +1 -1
- package/dist/src/circuit/pb/index.d.ts.map +1 -1
- package/dist/src/circuit/pb/index.js +29 -34
- package/dist/src/circuit/pb/index.js.map +1 -1
- package/dist/src/circuit/transport.d.ts +22 -7
- package/dist/src/circuit/transport.d.ts.map +1 -1
- package/dist/src/circuit/transport.js +26 -17
- package/dist/src/circuit/transport.js.map +1 -1
- package/dist/src/components.d.ts +110 -0
- package/dist/src/components.d.ts.map +1 -0
- package/dist/src/components.js +199 -0
- package/dist/src/components.js.map +1 -0
- package/dist/src/connection-manager/auto-dialler.d.ts +9 -2
- package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dialler.js +6 -6
- package/dist/src/connection-manager/auto-dialler.js.map +1 -1
- package/dist/src/connection-manager/dialer/index.d.ts +12 -5
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.js +9 -9
- package/dist/src/connection-manager/dialer/index.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +41 -9
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +82 -39
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/content-routing/index.d.ts +7 -2
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +4 -4
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/content-routing/utils.d.ts +1 -1
- package/dist/src/content-routing/utils.d.ts.map +1 -1
- package/dist/src/errors.d.ts +2 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/fetch/index.d.ts +7 -3
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/fetch/index.js +3 -3
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/fetch/pb/proto.d.ts.map +1 -1
- package/dist/src/fetch/pb/proto.js +24 -35
- package/dist/src/fetch/pb/proto.js.map +1 -1
- package/dist/src/identify/index.d.ts +13 -3
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +41 -41
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/identify/pb/message.d.ts.map +1 -1
- package/dist/src/identify/pb/message.js +23 -34
- package/dist/src/identify/pb/message.js.map +1 -1
- package/dist/src/index.d.ts +10 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/insecure/index.d.ts +2 -8
- package/dist/src/insecure/index.d.ts.map +1 -1
- package/dist/src/insecure/index.js +5 -3
- package/dist/src/insecure/index.js.map +1 -1
- package/dist/src/insecure/pb/proto.d.ts.map +1 -1
- package/dist/src/insecure/pb/proto.js +24 -29
- package/dist/src/insecure/pb/proto.js.map +1 -1
- package/dist/src/keychain/index.d.ts +6 -2
- package/dist/src/keychain/index.d.ts.map +1 -1
- package/dist/src/keychain/index.js +19 -19
- package/dist/src/keychain/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +1 -2
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +48 -71
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/nat-manager.d.ts +9 -2
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/nat-manager.js +3 -3
- package/dist/src/nat-manager.js.map +1 -1
- package/dist/src/peer-record-updater.d.ts +11 -2
- package/dist/src/peer-record-updater.d.ts.map +1 -1
- package/dist/src/peer-record-updater.js +10 -10
- package/dist/src/peer-record-updater.js.map +1 -1
- package/dist/src/peer-routing.d.ts +6 -2
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-routing.js +4 -4
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/ping/index.d.ts +7 -3
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +3 -3
- package/dist/src/ping/index.js.map +1 -1
- package/dist/src/pnet/index.d.ts +2 -17
- package/dist/src/pnet/index.d.ts.map +1 -1
- package/dist/src/pnet/index.js +4 -1
- package/dist/src/pnet/index.js.map +1 -1
- package/dist/src/pubsub/dummy-pubsub.d.ts +2 -1
- package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -1
- package/dist/src/pubsub/dummy-pubsub.js +4 -0
- package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
- package/dist/src/registrar.d.ts +9 -3
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +6 -6
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.d.ts +9 -3
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +4 -4
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +17 -5
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +55 -43
- package/dist/src/upgrader.js.map +1 -1
- package/package.json +37 -37
- package/src/address-manager/index.ts +31 -8
- package/src/circuit/auto-relay.ts +15 -15
- package/src/circuit/index.ts +16 -5
- package/src/circuit/pb/index.ts +29 -35
- package/src/circuit/transport.ts +49 -20
- package/src/components.ts +332 -0
- package/src/connection-manager/auto-dialler.ts +17 -9
- package/src/connection-manager/dialer/index.ts +23 -15
- package/src/connection-manager/index.ts +139 -47
- package/src/content-routing/index.ts +13 -7
- package/src/errors.ts +2 -1
- package/src/fetch/index.ts +12 -7
- package/src/fetch/pb/proto.ts +24 -35
- package/src/identify/index.ts +57 -53
- package/src/identify/pb/message.ts +23 -35
- package/src/index.ts +10 -9
- package/src/insecure/index.ts +6 -3
- package/src/insecure/pb/proto.ts +24 -29
- package/src/keychain/index.ts +27 -22
- package/src/libp2p.ts +49 -77
- package/src/nat-manager.ts +14 -6
- package/src/peer-record-updater.ts +23 -13
- package/src/peer-routing.ts +12 -7
- package/src/ping/index.ts +12 -7
- package/src/pnet/index.ts +5 -1
- package/src/pubsub/dummy-pubsub.ts +3 -1
- package/src/registrar.ts +17 -10
- package/src/transport-manager.ts +15 -8
- package/src/upgrader.ts +75 -49
- package/src/version.ts +1 -1
- package/dist/src/connection-manager/dialer/auto-dialer.d.ts +0 -16
- package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +0 -1
- package/dist/src/connection-manager/dialer/auto-dialer.js +0 -43
- package/dist/src/connection-manager/dialer/auto-dialer.js.map +0 -1
- package/src/connection-manager/dialer/auto-dialer.ts +0 -65
|
@@ -8,7 +8,7 @@ export declare function storeAddresses(source: Source<PeerInfo>, peerStore: Peer
|
|
|
8
8
|
/**
|
|
9
9
|
* Filter peers by unique peer id
|
|
10
10
|
*/
|
|
11
|
-
export declare function uniquePeers(source: Source<PeerInfo>): AsyncGenerator<PeerInfo, void,
|
|
11
|
+
export declare function uniquePeers(source: Source<PeerInfo>): AsyncGenerator<PeerInfo, void, undefined>;
|
|
12
12
|
/**
|
|
13
13
|
* Require at least `min` peers to be yielded from `source`
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/content-routing/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D;;GAEG;AACH,wBAAwB,cAAc,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,6CAOrF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/content-routing/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D;;GAEG;AACH,wBAAwB,cAAc,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,6CAOrF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,6CAcpD;AAED;;GAEG;AACH,wBAAwB,YAAY,CAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAE,MAAU,2CAY9E"}
|
package/dist/src/errors.d.ts
CHANGED
|
@@ -72,6 +72,7 @@ export declare enum codes {
|
|
|
72
72
|
ERR_ALREADY_SUCCEEDED = "ERR_ALREADY_SUCCEEDED",
|
|
73
73
|
ERR_NO_HANDLER_FOR_PROTOCOL = "ERR_NO_HANDLER_FOR_PROTOCOL",
|
|
74
74
|
ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS = "ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",
|
|
75
|
-
ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS = "ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS"
|
|
75
|
+
ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS = "ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",
|
|
76
|
+
ERR_CONNECTION_DENIED = "ERR_CONNECTION_DENIED"
|
|
76
77
|
}
|
|
77
78
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/src/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,eAAe,uCAAuC;IACtD,YAAY,yBAAyB;IACrC,eAAe,4BAA4B;IAC3C,wBAAwB,0DAA0D;IAClF,uBAAuB,8CAA8C;IACrE,sBAAsB,+DAA+D;IACrF,SAAS,cAAc;CACxB;AAED,oBAAY,KAAK;IACf,YAAY,qBAAqB;IACjC,mBAAmB,wBAAwB;IAC3C,kBAAkB,2BAA2B;IAC7C,eAAe,wBAAwB;IACvC,wBAAwB,iCAAiC;IACzD,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,0BAA0B,+BAA+B;IACzD,gCAAgC,qCAAqC;IACrE,oBAAoB,yBAAyB;IAC7C,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,wBAAwB,6BAA6B;IACrD,uCAAuC,4CAA4C;IACnF,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,aAAa,kBAAkB;IAC/B,wBAAwB,6BAA6B;IACrD,8BAA8B,mCAAmC;IACjE,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,2BAA2B,gCAAgC;IAC3D,sCAAsC,2CAA2C;IACjF,qCAAqC,0CAA0C;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,eAAe,uCAAuC;IACtD,YAAY,yBAAyB;IACrC,eAAe,4BAA4B;IAC3C,wBAAwB,0DAA0D;IAClF,uBAAuB,8CAA8C;IACrE,sBAAsB,+DAA+D;IACrF,SAAS,cAAc;CACxB;AAED,oBAAY,KAAK;IACf,YAAY,qBAAqB;IACjC,mBAAmB,wBAAwB;IAC3C,kBAAkB,2BAA2B;IAC7C,eAAe,wBAAwB;IACvC,wBAAwB,iCAAiC;IACzD,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,0BAA0B,+BAA+B;IACzD,gCAAgC,qCAAqC;IACrE,oBAAoB,yBAAyB;IAC7C,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,wBAAwB,6BAA6B;IACrD,uCAAuC,4CAA4C;IACnF,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,aAAa,kBAAkB;IAC/B,wBAAwB,6BAA6B;IACrD,8BAA8B,mCAAmC;IACjE,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,2BAA2B,gCAAgC;IAC3D,sCAAsC,2CAA2C;IACjF,qCAAqC,0CAA0C;IAC/E,qBAAqB,0BAA0B;CAChD"}
|
package/dist/src/errors.js
CHANGED
|
@@ -75,5 +75,6 @@ export var codes;
|
|
|
75
75
|
codes["ERR_NO_HANDLER_FOR_PROTOCOL"] = "ERR_NO_HANDLER_FOR_PROTOCOL";
|
|
76
76
|
codes["ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS"] = "ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS";
|
|
77
77
|
codes["ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS"] = "ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS";
|
|
78
|
+
codes["ERR_CONNECTION_DENIED"] = "ERR_CONNECTION_DENIED";
|
|
78
79
|
})(codes || (codes = {}));
|
|
79
80
|
//# sourceMappingURL=errors.js.map
|
package/dist/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,kEAAsD,CAAA;IACtD,iDAAqC,CAAA;IACrC,uDAA2C,CAAA;IAC3C,8FAAkF,CAAA;IAClF,iFAAqE,CAAA;IACrE,iGAAqF,CAAA;IACrF,mCAAuB,CAAA;AACzB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,kEAAsD,CAAA;IACtD,iDAAqC,CAAA;IACrC,uDAA2C,CAAA;IAC3C,8FAAkF,CAAA;IAClF,iFAAqE,CAAA;IACrE,iGAAqF,CAAA;IACrF,mCAAuB,CAAA;AACzB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,MAAM,CAAN,IAAY,KAmEX;AAnED,WAAY,KAAK;IACf,0CAAiC,CAAA;IACjC,oDAA2C,CAAA;IAC3C,sDAA6C,CAAA;IAC7C,gDAAuC,CAAA;IACvC,kEAAyD,CAAA;IACzD,4DAAmD,CAAA;IACnD,0DAAiD,CAAA;IACjD,gEAAuD,CAAA;IACvD,kEAAyD,CAAA;IACzD,8EAAqE,CAAA;IACrE,sDAA6C,CAAA;IAC7C,wDAA+C,CAAA;IAC/C,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,0DAAiD,CAAA;IACjD,0DAAiD,CAAA;IACjD,8CAAqC,CAAA;IACrC,4CAAmC,CAAA;IACnC,oDAA2C,CAAA;IAC3C,4DAAmD,CAAA;IACnD,wDAA+C,CAAA;IAC/C,0DAAiD,CAAA;IACjD,4CAAmC,CAAA;IACnC,oDAA2C,CAAA;IAC3C,0DAAiD,CAAA;IACjD,8CAAqC,CAAA;IACrC,wDAA+C,CAAA;IAC/C,wCAA+B,CAAA;IAC/B,oCAA2B,CAAA;IAC3B,gEAAuD,CAAA;IACvD,gEAAuD,CAAA;IACvD,8DAAqD,CAAA;IACrD,4FAAmF,CAAA;IACnF,wDAA+C,CAAA;IAC/C,4DAAmD,CAAA;IACnD,wCAA+B,CAAA;IAC/B,8DAAqD,CAAA;IACrD,0EAAiE,CAAA;IACjE,kDAAyC,CAAA;IACzC,wDAA+C,CAAA;IAC/C,4CAAmC,CAAA;IACnC,8CAAqC,CAAA;IACrC,kCAAyB,CAAA;IACzB,sDAA6C,CAAA;IAC7C,sDAA6C,CAAA;IAC7C,0DAAiD,CAAA;IACjD,sDAA6C,CAAA;IAC7C,gDAAuC,CAAA;IACvC,8DAAqD,CAAA;IACrD,8DAAqD,CAAA;IACrD,wDAA+C,CAAA;IAC/C,8CAAqC,CAAA;IACrC,oDAA2C,CAAA;IAC3C,4DAAmD,CAAA;IACnD,0DAAiD,CAAA;IACjD,gEAAuD,CAAA;IACvD,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;IACnD,oDAA2C,CAAA;IAC3C,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,wDAA+C,CAAA;IAC/C,oEAA2D,CAAA;IAC3D,0FAAiF,CAAA;IACjF,wFAA+E,CAAA;IAC/E,wDAA+C,CAAA;AACjD,CAAC,EAnEW,KAAK,KAAL,KAAK,QAmEhB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
2
2
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
3
3
|
import type { Stream } from '@libp2p/interface-connection';
|
|
4
|
-
import type { IncomingStreamData } from '@libp2p/interface-registrar';
|
|
5
|
-
import type { Components } from '@libp2p/components';
|
|
4
|
+
import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar';
|
|
6
5
|
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
|
+
import type { ConnectionManager } from '@libp2p/interface-connection-manager';
|
|
7
7
|
export interface FetchServiceInit {
|
|
8
8
|
protocolPrefix: string;
|
|
9
9
|
maxInboundStreams: number;
|
|
@@ -20,6 +20,10 @@ export interface HandleMessageOptions {
|
|
|
20
20
|
export interface LookupFunction {
|
|
21
21
|
(key: string): Promise<Uint8Array | null>;
|
|
22
22
|
}
|
|
23
|
+
export interface FetchServiceComponents {
|
|
24
|
+
registrar: Registrar;
|
|
25
|
+
connectionManager: ConnectionManager;
|
|
26
|
+
}
|
|
23
27
|
/**
|
|
24
28
|
* A simple libp2p protocol for requesting a value corresponding to a key from a peer.
|
|
25
29
|
* Developers can register one or more lookup function for retrieving the value corresponding to
|
|
@@ -32,7 +36,7 @@ export declare class FetchService implements Startable {
|
|
|
32
36
|
private readonly lookupFunctions;
|
|
33
37
|
private started;
|
|
34
38
|
private readonly init;
|
|
35
|
-
constructor(components:
|
|
39
|
+
constructor(components: FetchServiceComponents, init: FetchServiceInit);
|
|
36
40
|
start(): Promise<void>;
|
|
37
41
|
stop(): Promise<void>;
|
|
38
42
|
isStarted(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAI7E,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC5C,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;gBAE1B,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB;IASjE,KAAK;IAgBL,IAAI;IAKV,SAAS;IAIT;;OAEG;IACG,KAAK,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAuE/F;;;;OAIG;IACG,aAAa,CAAE,IAAI,EAAE,kBAAkB;IAsC7C;;;OAGG;IACH,kBAAkB,CAAE,GAAG,EAAE,MAAM;IAQ/B;;;OAGG;IACH,sBAAsB,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAQ9D;;;OAGG;IACH,wBAAwB,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc;CAWlE"}
|
package/dist/src/fetch/index.js
CHANGED
|
@@ -26,7 +26,7 @@ export class FetchService {
|
|
|
26
26
|
this.init = init;
|
|
27
27
|
}
|
|
28
28
|
async start() {
|
|
29
|
-
await this.components.
|
|
29
|
+
await this.components.registrar.handle(this.protocol, (data) => {
|
|
30
30
|
void this.handleMessage(data)
|
|
31
31
|
.catch(err => {
|
|
32
32
|
log.error(err);
|
|
@@ -41,7 +41,7 @@ export class FetchService {
|
|
|
41
41
|
this.started = true;
|
|
42
42
|
}
|
|
43
43
|
async stop() {
|
|
44
|
-
await this.components.
|
|
44
|
+
await this.components.registrar.unhandle(this.protocol);
|
|
45
45
|
this.started = false;
|
|
46
46
|
}
|
|
47
47
|
isStarted() {
|
|
@@ -52,7 +52,7 @@ export class FetchService {
|
|
|
52
52
|
*/
|
|
53
53
|
async fetch(peer, key, options = {}) {
|
|
54
54
|
log('dialing %s to %p', this.protocol, peer);
|
|
55
|
-
const connection = await this.components.
|
|
55
|
+
const connection = await this.components.connectionManager.openConnection(peer, options);
|
|
56
56
|
let timeoutController;
|
|
57
57
|
let signal = options.signal;
|
|
58
58
|
let stream;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fetch/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proto.d.ts","sourceRoot":"","sources":["../../../../src/fetch/pb/proto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proto.d.ts","sourceRoot":"","sources":["../../../../src/fetch/pb/proto.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,yBAAiB,YAAY,CAAC;IAGrB,MAAM,KAAK,QAAO,MAAM,YAAY,CAwC1C,CAAA;IAEM,MAAM,MAAM,QAAS,YAAY,KAAG,UAE1C,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,YAEzD,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,CAAC,UAAU,CAAA;IAChC,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,yBAAiB,aAAa,CAAC;IAC7B,KAAY,UAAU;QACpB,EAAE,OAAO;QACT,SAAS,cAAc;QACvB,KAAK,UAAU;KAChB;IAQD,UAAiB,UAAU,CAAC;QACnB,MAAM,KAAK,yBAEjB,CAAA;KACF;IAIM,MAAM,KAAK,QAAO,MAAM,aAAa,CAiD3C,CAAA;IAEM,MAAM,MAAM,QAAS,aAAa,KAAG,UAE3C,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,aAEzD,CAAA;CACF"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
/* eslint-disable import/export */
|
|
2
|
+
/* eslint-disable complexity */
|
|
2
3
|
/* eslint-disable @typescript-eslint/no-namespace */
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */
|
|
3
5
|
import { encodeMessage, decodeMessage, message, enumeration } from 'protons-runtime';
|
|
4
6
|
export var FetchRequest;
|
|
5
7
|
(function (FetchRequest) {
|
|
6
8
|
let _codec;
|
|
7
9
|
FetchRequest.codec = () => {
|
|
8
10
|
if (_codec == null) {
|
|
9
|
-
_codec = message((obj,
|
|
11
|
+
_codec = message((obj, w, opts = {}) => {
|
|
10
12
|
if (opts.lengthDelimited !== false) {
|
|
11
|
-
|
|
13
|
+
w.fork();
|
|
12
14
|
}
|
|
13
|
-
if (obj.identifier
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
throw new Error('Protocol error: required field "identifier" was not found in object');
|
|
15
|
+
if (opts.writeDefaults === true || obj.identifier !== '') {
|
|
16
|
+
w.uint32(10);
|
|
17
|
+
w.string(obj.identifier);
|
|
19
18
|
}
|
|
20
19
|
if (opts.lengthDelimited !== false) {
|
|
21
|
-
|
|
20
|
+
w.ldelim();
|
|
22
21
|
}
|
|
23
22
|
}, (reader, length) => {
|
|
24
|
-
const obj = {
|
|
23
|
+
const obj = {
|
|
24
|
+
identifier: ''
|
|
25
|
+
};
|
|
25
26
|
const end = length == null ? reader.len : reader.pos + length;
|
|
26
27
|
while (reader.pos < end) {
|
|
27
28
|
const tag = reader.uint32();
|
|
@@ -34,9 +35,6 @@ export var FetchRequest;
|
|
|
34
35
|
break;
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
if (obj.identifier == null) {
|
|
38
|
-
throw new Error('Protocol error: value for required field "identifier" was not found in protobuf');
|
|
39
|
-
}
|
|
40
38
|
return obj;
|
|
41
39
|
});
|
|
42
40
|
}
|
|
@@ -71,29 +69,26 @@ export var FetchResponse;
|
|
|
71
69
|
let _codec;
|
|
72
70
|
FetchResponse.codec = () => {
|
|
73
71
|
if (_codec == null) {
|
|
74
|
-
_codec = message((obj,
|
|
72
|
+
_codec = message((obj, w, opts = {}) => {
|
|
75
73
|
if (opts.lengthDelimited !== false) {
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
if (obj.status != null) {
|
|
79
|
-
writer.uint32(8);
|
|
80
|
-
FetchResponse.StatusCode.codec().encode(obj.status, writer);
|
|
74
|
+
w.fork();
|
|
81
75
|
}
|
|
82
|
-
|
|
83
|
-
|
|
76
|
+
if (opts.writeDefaults === true || (obj.status != null && __StatusCodeValues[obj.status] !== 0)) {
|
|
77
|
+
w.uint32(8);
|
|
78
|
+
FetchResponse.StatusCode.codec().encode(obj.status, w);
|
|
84
79
|
}
|
|
85
|
-
if (obj.data != null) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
throw new Error('Protocol error: required field "data" was not found in object');
|
|
80
|
+
if (opts.writeDefaults === true || (obj.data != null && obj.data.byteLength > 0)) {
|
|
81
|
+
w.uint32(18);
|
|
82
|
+
w.bytes(obj.data);
|
|
91
83
|
}
|
|
92
84
|
if (opts.lengthDelimited !== false) {
|
|
93
|
-
|
|
85
|
+
w.ldelim();
|
|
94
86
|
}
|
|
95
87
|
}, (reader, length) => {
|
|
96
|
-
const obj = {
|
|
88
|
+
const obj = {
|
|
89
|
+
status: StatusCode.OK,
|
|
90
|
+
data: new Uint8Array(0)
|
|
91
|
+
};
|
|
97
92
|
const end = length == null ? reader.len : reader.pos + length;
|
|
98
93
|
while (reader.pos < end) {
|
|
99
94
|
const tag = reader.uint32();
|
|
@@ -109,12 +104,6 @@ export var FetchResponse;
|
|
|
109
104
|
break;
|
|
110
105
|
}
|
|
111
106
|
}
|
|
112
|
-
if (obj.status == null) {
|
|
113
|
-
throw new Error('Protocol error: value for required field "status" was not found in protobuf');
|
|
114
|
-
}
|
|
115
|
-
if (obj.data == null) {
|
|
116
|
-
throw new Error('Protocol error: value for required field "data" was not found in protobuf');
|
|
117
|
-
}
|
|
118
107
|
return obj;
|
|
119
108
|
});
|
|
120
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proto.js","sourceRoot":"","sources":["../../../../src/fetch/pb/proto.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oDAAoD;
|
|
1
|
+
{"version":3,"file":"proto.js","sourceRoot":"","sources":["../../../../src/fetch/pb/proto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { Identify } from './pb/message.js';
|
|
2
|
-
import type { IncomingStreamData } from '@libp2p/interface-registrar';
|
|
2
|
+
import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar';
|
|
3
3
|
import type { Connection } from '@libp2p/interface-connection';
|
|
4
4
|
import type { Startable } from '@libp2p/interfaces/startable';
|
|
5
|
-
import type { Components } from '@libp2p/components';
|
|
6
5
|
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
|
+
import type { ConnectionManager } from '@libp2p/interface-connection-manager';
|
|
7
|
+
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
8
|
+
import type { PeerStore } from '@libp2p/interface-peer-store';
|
|
9
|
+
import type { AddressManager } from '@libp2p/interface-address-manager';
|
|
7
10
|
export interface HostProperties {
|
|
8
11
|
agentVersion: string;
|
|
9
12
|
}
|
|
@@ -29,6 +32,13 @@ export interface IdentifyServiceInit {
|
|
|
29
32
|
maxPushIncomingStreams: number;
|
|
30
33
|
maxPushOutgoingStreams: number;
|
|
31
34
|
}
|
|
35
|
+
export interface IdentifyServiceComponents {
|
|
36
|
+
peerId: PeerId;
|
|
37
|
+
peerStore: PeerStore;
|
|
38
|
+
connectionManager: ConnectionManager;
|
|
39
|
+
registrar: Registrar;
|
|
40
|
+
addressManager: AddressManager;
|
|
41
|
+
}
|
|
32
42
|
export declare class IdentifyService implements Startable {
|
|
33
43
|
private readonly components;
|
|
34
44
|
private readonly identifyProtocolStr;
|
|
@@ -36,7 +46,7 @@ export declare class IdentifyService implements Startable {
|
|
|
36
46
|
private readonly host;
|
|
37
47
|
private readonly init;
|
|
38
48
|
private started;
|
|
39
|
-
constructor(components:
|
|
49
|
+
constructor(components: IdentifyServiceComponents, init: IdentifyServiceInit);
|
|
40
50
|
isStarted(): boolean;
|
|
41
51
|
start(): Promise<void>;
|
|
42
52
|
stop(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identify/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identify/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAY1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAOvE,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,IAAI,EAAE,cAAc,CAAA;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAE1B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAQ;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAGpB;IAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAuC7E,SAAS;IAIH,KAAK;IA4BL,IAAI;IAOV;;OAEG;IACG,IAAI,CAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrD;;OAEG;IACG,eAAe;IAsBf,SAAS,CAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqDvF;;;;OAIG;IACG,QAAQ,CAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwFlF;;;OAGG;IACG,eAAe,CAAE,IAAI,EAAE,kBAAkB;IAiD/C;;OAEG;IACG,WAAW,CAAE,IAAI,EAAE,kBAAkB;IAqF3C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;CASvE;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;CAGvB,CAAA;AAED,eAAO,MAAM,OAAO;;CAAe,CAAA"}
|
|
@@ -2,7 +2,6 @@ import { logger } from '@libp2p/logger';
|
|
|
2
2
|
import errCode from 'err-code';
|
|
3
3
|
import * as lp from 'it-length-prefixed';
|
|
4
4
|
import { pipe } from 'it-pipe';
|
|
5
|
-
import drain from 'it-drain';
|
|
6
5
|
import first from 'it-first';
|
|
7
6
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
8
7
|
import { multiaddr, protocols } from '@multiformats/multiaddr';
|
|
@@ -30,21 +29,21 @@ export class IdentifyService {
|
|
|
30
29
|
...init.host
|
|
31
30
|
};
|
|
32
31
|
// When a new connection happens, trigger identify
|
|
33
|
-
this.components.
|
|
32
|
+
this.components.connectionManager.addEventListener('peer:connect', (evt) => {
|
|
34
33
|
const connection = evt.detail;
|
|
35
34
|
this.identify(connection).catch(log.error);
|
|
36
35
|
});
|
|
37
36
|
// When self multiaddrs change, trigger identify-push
|
|
38
|
-
this.components.
|
|
37
|
+
this.components.peerStore.addEventListener('change:multiaddrs', (evt) => {
|
|
39
38
|
const { peerId } = evt.detail;
|
|
40
|
-
if (this.components.
|
|
39
|
+
if (this.components.peerId.equals(peerId)) {
|
|
41
40
|
void this.pushToPeerStore().catch(err => log.error(err));
|
|
42
41
|
}
|
|
43
42
|
});
|
|
44
43
|
// When self protocols change, trigger identify-push
|
|
45
|
-
this.components.
|
|
44
|
+
this.components.peerStore.addEventListener('change:protocols', (evt) => {
|
|
46
45
|
const { peerId } = evt.detail;
|
|
47
|
-
if (this.components.
|
|
46
|
+
if (this.components.peerId.equals(peerId)) {
|
|
48
47
|
void this.pushToPeerStore().catch(err => log.error(err));
|
|
49
48
|
}
|
|
50
49
|
});
|
|
@@ -56,9 +55,9 @@ export class IdentifyService {
|
|
|
56
55
|
if (this.started) {
|
|
57
56
|
return;
|
|
58
57
|
}
|
|
59
|
-
await this.components.
|
|
60
|
-
await this.components.
|
|
61
|
-
await this.components.
|
|
58
|
+
await this.components.peerStore.metadataBook.setValue(this.components.peerId, 'AgentVersion', uint8ArrayFromString(this.host.agentVersion));
|
|
59
|
+
await this.components.peerStore.metadataBook.setValue(this.components.peerId, 'ProtocolVersion', uint8ArrayFromString(this.host.protocolVersion));
|
|
60
|
+
await this.components.registrar.handle(this.identifyProtocolStr, (data) => {
|
|
62
61
|
void this._handleIdentify(data).catch(err => {
|
|
63
62
|
log.error(err);
|
|
64
63
|
});
|
|
@@ -66,7 +65,7 @@ export class IdentifyService {
|
|
|
66
65
|
maxInboundStreams: this.init.maxInboundStreams,
|
|
67
66
|
maxOutboundStreams: this.init.maxOutboundStreams
|
|
68
67
|
});
|
|
69
|
-
await this.components.
|
|
68
|
+
await this.components.registrar.handle(this.identifyPushProtocolStr, (data) => {
|
|
70
69
|
void this._handlePush(data).catch(err => {
|
|
71
70
|
log.error(err);
|
|
72
71
|
});
|
|
@@ -77,17 +76,17 @@ export class IdentifyService {
|
|
|
77
76
|
this.started = true;
|
|
78
77
|
}
|
|
79
78
|
async stop() {
|
|
80
|
-
await this.components.
|
|
81
|
-
await this.components.
|
|
79
|
+
await this.components.registrar.unhandle(this.identifyProtocolStr);
|
|
80
|
+
await this.components.registrar.unhandle(this.identifyPushProtocolStr);
|
|
82
81
|
this.started = false;
|
|
83
82
|
}
|
|
84
83
|
/**
|
|
85
84
|
* Send an Identify Push update to the list of connections
|
|
86
85
|
*/
|
|
87
86
|
async push(connections) {
|
|
88
|
-
const signedPeerRecord = await this.components.
|
|
89
|
-
const listenAddrs = this.components.
|
|
90
|
-
const protocols = await this.components.
|
|
87
|
+
const signedPeerRecord = await this.components.peerStore.addressBook.getRawEnvelope(this.components.peerId);
|
|
88
|
+
const listenAddrs = this.components.addressManager.getAddresses().map((ma) => ma.bytes);
|
|
89
|
+
const protocols = await this.components.peerStore.protoBook.get(this.components.peerId);
|
|
91
90
|
const pushes = connections.map(async (connection) => {
|
|
92
91
|
let stream;
|
|
93
92
|
const timeoutController = new TimeoutController(this.init.timeout);
|
|
@@ -102,11 +101,11 @@ export class IdentifyService {
|
|
|
102
101
|
});
|
|
103
102
|
// make stream abortable
|
|
104
103
|
const source = abortableDuplex(stream, timeoutController.signal);
|
|
105
|
-
await pipe([Identify.encode({
|
|
104
|
+
await source.sink(pipe([Identify.encode({
|
|
106
105
|
listenAddrs,
|
|
107
106
|
signedPeerRecord,
|
|
108
107
|
protocols
|
|
109
|
-
})], lp.encode()
|
|
108
|
+
})], lp.encode()));
|
|
110
109
|
}
|
|
111
110
|
catch (err) {
|
|
112
111
|
// Just log errors
|
|
@@ -130,9 +129,9 @@ export class IdentifyService {
|
|
|
130
129
|
return;
|
|
131
130
|
}
|
|
132
131
|
const connections = [];
|
|
133
|
-
for (const conn of this.components.
|
|
132
|
+
for (const conn of this.components.connectionManager.getConnections()) {
|
|
134
133
|
const peerId = conn.remotePeer;
|
|
135
|
-
const peer = await this.components.
|
|
134
|
+
const peer = await this.components.peerStore.get(peerId);
|
|
136
135
|
if (!peer.protocols.includes(this.identifyPushProtocolStr)) {
|
|
137
136
|
continue;
|
|
138
137
|
}
|
|
@@ -197,7 +196,7 @@ export class IdentifyService {
|
|
|
197
196
|
if (!connection.remotePeer.equals(id)) {
|
|
198
197
|
throw errCode(new Error('identified peer does not match the expected peer'), codes.ERR_INVALID_PEER);
|
|
199
198
|
}
|
|
200
|
-
if (this.components.
|
|
199
|
+
if (this.components.peerId.equals(id)) {
|
|
201
200
|
throw errCode(new Error('identified peer is our own peer id?'), codes.ERR_INVALID_PEER);
|
|
202
201
|
}
|
|
203
202
|
// Get the observedAddr if there is one
|
|
@@ -209,13 +208,13 @@ export class IdentifyService {
|
|
|
209
208
|
if (!envelope.peerId.equals(id)) {
|
|
210
209
|
throw errCode(new Error('identified peer does not match the expected peer'), codes.ERR_INVALID_PEER);
|
|
211
210
|
}
|
|
212
|
-
if (await this.components.
|
|
213
|
-
await this.components.
|
|
211
|
+
if (await this.components.peerStore.addressBook.consumePeerRecord(envelope)) {
|
|
212
|
+
await this.components.peerStore.protoBook.set(id, protocols);
|
|
214
213
|
if (agentVersion != null) {
|
|
215
|
-
await this.components.
|
|
214
|
+
await this.components.peerStore.metadataBook.setValue(id, 'AgentVersion', uint8ArrayFromString(agentVersion));
|
|
216
215
|
}
|
|
217
216
|
if (protocolVersion != null) {
|
|
218
|
-
await this.components.
|
|
217
|
+
await this.components.peerStore.metadataBook.setValue(id, 'ProtocolVersion', uint8ArrayFromString(protocolVersion));
|
|
219
218
|
}
|
|
220
219
|
log('identify completed for peer %p and protocols %o', id, protocols);
|
|
221
220
|
return;
|
|
@@ -231,22 +230,22 @@ export class IdentifyService {
|
|
|
231
230
|
log('falling back to legacy addresses from %p', id);
|
|
232
231
|
// LEGACY: Update peers data in PeerStore
|
|
233
232
|
try {
|
|
234
|
-
await this.components.
|
|
233
|
+
await this.components.peerStore.addressBook.set(id, listenAddrs.map((addr) => multiaddr(addr)));
|
|
235
234
|
}
|
|
236
235
|
catch (err) {
|
|
237
236
|
log.error('received invalid addrs', err);
|
|
238
237
|
}
|
|
239
|
-
await this.components.
|
|
238
|
+
await this.components.peerStore.protoBook.set(id, protocols);
|
|
240
239
|
if (agentVersion != null) {
|
|
241
|
-
await this.components.
|
|
240
|
+
await this.components.peerStore.metadataBook.setValue(id, 'AgentVersion', uint8ArrayFromString(agentVersion));
|
|
242
241
|
}
|
|
243
242
|
if (protocolVersion != null) {
|
|
244
|
-
await this.components.
|
|
243
|
+
await this.components.peerStore.metadataBook.setValue(id, 'ProtocolVersion', uint8ArrayFromString(protocolVersion));
|
|
245
244
|
}
|
|
246
245
|
log('identify completed for peer %p and protocols %o', id, protocols);
|
|
247
246
|
// TODO: Add and score our observed addr
|
|
248
247
|
log('received observed address of %s', cleanObservedAddr?.toString());
|
|
249
|
-
// this.components.
|
|
248
|
+
// this.components.addressManager.addObservedAddr(observedAddr)
|
|
250
249
|
}
|
|
251
250
|
/**
|
|
252
251
|
* Sends the `Identify` response with the Signed Peer Record
|
|
@@ -261,17 +260,17 @@ export class IdentifyService {
|
|
|
261
260
|
}
|
|
262
261
|
catch { }
|
|
263
262
|
try {
|
|
264
|
-
const publicKey = this.components.
|
|
265
|
-
const peerData = await this.components.
|
|
266
|
-
const multiaddrs = this.components.
|
|
263
|
+
const publicKey = this.components.peerId.publicKey ?? new Uint8Array(0);
|
|
264
|
+
const peerData = await this.components.peerStore.get(this.components.peerId);
|
|
265
|
+
const multiaddrs = this.components.addressManager.getAddresses().map(ma => ma.decapsulateCode(protocols('p2p').code));
|
|
267
266
|
let signedPeerRecord = peerData.peerRecordEnvelope;
|
|
268
267
|
if (multiaddrs.length > 0 && signedPeerRecord == null) {
|
|
269
268
|
const peerRecord = new PeerRecord({
|
|
270
|
-
peerId: this.components.
|
|
269
|
+
peerId: this.components.peerId,
|
|
271
270
|
multiaddrs
|
|
272
271
|
});
|
|
273
|
-
const envelope = await RecordEnvelope.seal(peerRecord, this.components.
|
|
274
|
-
await this.components.
|
|
272
|
+
const envelope = await RecordEnvelope.seal(peerRecord, this.components.peerId);
|
|
273
|
+
await this.components.peerStore.addressBook.consumePeerRecord(envelope);
|
|
275
274
|
signedPeerRecord = envelope.marshal().subarray();
|
|
276
275
|
}
|
|
277
276
|
const message = Identify.encode({
|
|
@@ -285,7 +284,8 @@ export class IdentifyService {
|
|
|
285
284
|
});
|
|
286
285
|
// make stream abortable
|
|
287
286
|
const source = abortableDuplex(stream, timeoutController.signal);
|
|
288
|
-
|
|
287
|
+
const msgWithLenPrefix = pipe([message], lp.encode());
|
|
288
|
+
await source.sink(msgWithLenPrefix);
|
|
289
289
|
}
|
|
290
290
|
catch (err) {
|
|
291
291
|
log.error('could not respond to identify request', err);
|
|
@@ -328,7 +328,7 @@ export class IdentifyService {
|
|
|
328
328
|
return log.error('received invalid message');
|
|
329
329
|
}
|
|
330
330
|
const id = connection.remotePeer;
|
|
331
|
-
if (this.components.
|
|
331
|
+
if (this.components.peerId.equals(id)) {
|
|
332
332
|
log('received push from ourselves?');
|
|
333
333
|
return;
|
|
334
334
|
}
|
|
@@ -337,9 +337,9 @@ export class IdentifyService {
|
|
|
337
337
|
log('received signedPeerRecord in push');
|
|
338
338
|
try {
|
|
339
339
|
const envelope = await RecordEnvelope.openAndCertify(message.signedPeerRecord, PeerRecord.DOMAIN);
|
|
340
|
-
if (await this.components.
|
|
340
|
+
if (await this.components.peerStore.addressBook.consumePeerRecord(envelope)) {
|
|
341
341
|
log('consumed signedPeerRecord sent in push');
|
|
342
|
-
await this.components.
|
|
342
|
+
await this.components.peerStore.protoBook.set(id, message.protocols);
|
|
343
343
|
return;
|
|
344
344
|
}
|
|
345
345
|
else {
|
|
@@ -355,14 +355,14 @@ export class IdentifyService {
|
|
|
355
355
|
}
|
|
356
356
|
// LEGACY: Update peers data in PeerStore
|
|
357
357
|
try {
|
|
358
|
-
await this.components.
|
|
358
|
+
await this.components.peerStore.addressBook.set(id, message.listenAddrs.map((addr) => multiaddr(addr)));
|
|
359
359
|
}
|
|
360
360
|
catch (err) {
|
|
361
361
|
log.error('received invalid addrs', err);
|
|
362
362
|
}
|
|
363
363
|
// Update the protocols
|
|
364
364
|
try {
|
|
365
|
-
await this.components.
|
|
365
|
+
await this.components.peerStore.protoBook.set(id, message.protocols);
|
|
366
366
|
}
|
|
367
367
|
catch (err) {
|
|
368
368
|
log.error('received invalid protocols', err);
|