BREAKING: Native p2ns.core RPC — invite.deliver, remove legacy invite channel
Replace RPC-to-string adapters and processCoreRequestMessage (~470 lines) with
typed handlers in core-swarm-handlers.js. Autopass invite wire now uses
invite.deliver RPC only; p2ns.core-invite protomux channel is removed.
- Add core-rpc-contract.js (METHODS, INVITE_STATUS) and core-swarm-handlers.js
with shared processInviteWire for deliver, relay, and pairing
- core-rpc.js: deliverInviteWire via invite.deliver; invite.request returns
{ status, reason, inviteId }; invite.ack carries optional inviteId
- p2ns.js: register native handlers; slim p2ns.core-request (lifecycle only);
proactive invite ack tracks inviteId; fix missing invite.queued handler
- proxy-server: channel-manager + shared handlers (no p2ns.core-invite strings)
- Tests: core-swarm-handlers.test.js, core-invite-rpc-integration.js; extend test:core-rpc
- Docs: PLUGIN_SDK RPC table; consensus.removeDomain in longform/RESTAPI/glossary
This commit is contained in:
@@ -1740,11 +1740,26 @@ const result = await sdk.channels.rpc.request('sync', peerId, 'sync.push', { id:
|
||||
sdk.channels.rpc.event('sync', peerId, 'sync.notify', { id: 1 });
|
||||
```
|
||||
|
||||
Core network invite/consensus uses `p2ns.core` RPC methods (`invite.request`, `invite.ack`, `consensus.removeDomain`, etc.) — see `includes/core/core-rpc.js`.
|
||||
Core network invite/consensus uses `p2ns.core-request-rpc` only (no `p2ns.core-invite` channel):
|
||||
|
||||
| Method | Direction | Payload |
|
||||
|--------|-----------|---------|
|
||||
| `invite.request` | request/response | → `{ status: 'ok'|'queued'|'unavailable', reason?, inviteId? }` |
|
||||
| `invite.deliver` | event | `{ inviteWire, inviteId? }` |
|
||||
| `invite.ack` | event | `{ inviteId? }` |
|
||||
| `invite.unavailable` / `invite.queued` | event | `{ reason }` |
|
||||
| `invite.relayRequest` | event | `{ originPeerId, hopCount }` |
|
||||
| `invite.relayResponse` | event | `{ originPeerId, inviteWire }` |
|
||||
| `consensus.removeDomain` | event | `{ domain }` |
|
||||
| `consensus.recalculate` | event | `{ domain }` (`'all'` supported) |
|
||||
| `consensus.removeConflictClaim` | event | `{ domain }` |
|
||||
|
||||
See [`includes/core/core-rpc-contract.js`](../../includes/core/core-rpc-contract.js) and [`includes/core/core-swarm-handlers.js`](../../includes/core/core-swarm-handlers.js).
|
||||
|
||||
### Breaking migration notes (v2 channel contract)
|
||||
|
||||
- String control messages on `p2ns.core-request` are rejected; use RPC only.
|
||||
- Autopass invite wire is delivered only via `invite.deliver` RPC (legacy invite protomux channel removed).
|
||||
- String control messages on `p2ns.core-request` are not used; RPC only.
|
||||
- `USE_SHARED_CORESTORE_NAMESPACES` defaults to shared main Corestore (set `false` only for debugging).
|
||||
- Admin actions with `params` are validated before execution (`string`, `number`, `boolean`).
|
||||
- Use `sdk.state.getPeerChannelSnapshot()` instead of raw `peerChannels` Map shape.
|
||||
|
||||
Reference in New Issue
Block a user