@@ -141,6 +141,9 @@ const dict = {
|
||||
'Subs API': 141,
|
||||
'REST API of the subs daemon (subsd) for Subspaces operations. Distinct from the Subspaces Prover and Subspaces Registry. Only useful while Subspaces is enabled.':
|
||||
142,
|
||||
'Spaces API': 143,
|
||||
'JSON-RPC API served by the spaced daemon. Authenticated with the spaced RPC credentials (SPACED_RPC_USER / SPACED_RPC_PASSWORD from store.spacedAuth). spaced binds 0.0.0.0 so external processes can reach this endpoint.':
|
||||
144,
|
||||
|
||||
// interfaces.ts
|
||||
'Space-CLI Web UI': 12,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { sdk } from './sdk'
|
||||
import {
|
||||
CERTRELAY_PORT,
|
||||
EXPLORER_PORT,
|
||||
spacedRpcPort,
|
||||
SUBSPACES_PROVER_PORT,
|
||||
SUBSPACES_REGISTRY_PORT,
|
||||
SUBSPACES_UI_PORT,
|
||||
@@ -151,6 +152,26 @@ export const setInterfaces = sdk.setupInterfaces(async ({ effects }) => {
|
||||
|
||||
const certrelayReceipt = await certrelayMultiOrigin.export([certrelay])
|
||||
|
||||
const spacedMulti = sdk.MultiHost.of(effects, 'spaced-api-multi')
|
||||
const spacedMultiOrigin = await spacedMulti.bindPort(spacedRpcPort, {
|
||||
protocol: 'http',
|
||||
})
|
||||
const spacedApi = sdk.createInterface(effects, {
|
||||
name: i18n('Spaces API'),
|
||||
id: 'spaces-api',
|
||||
description: i18n(
|
||||
'JSON-RPC API served by the spaced daemon. Authenticated with the spaced RPC credentials (SPACED_RPC_USER / SPACED_RPC_PASSWORD from store.spacedAuth). spaced binds 0.0.0.0 so external processes can reach this endpoint.',
|
||||
),
|
||||
type: 'api',
|
||||
masked: false,
|
||||
schemeOverride: null,
|
||||
username: null,
|
||||
path: '',
|
||||
query: {},
|
||||
})
|
||||
|
||||
const spacedApiReceipt = await spacedMultiOrigin.export([spacedApi])
|
||||
|
||||
return [
|
||||
uiReceipt,
|
||||
explorerReceipt,
|
||||
@@ -158,5 +179,6 @@ export const setInterfaces = sdk.setupInterfaces(async ({ effects }) => {
|
||||
proverReceipt,
|
||||
registryReceipt,
|
||||
certrelayReceipt,
|
||||
spacedApiReceipt,
|
||||
]
|
||||
})
|
||||
|
||||
+4
-1
@@ -62,7 +62,10 @@ export const main = sdk.setupMain(async ({ effects }) => {
|
||||
const spacedEnv = {
|
||||
SPACED_CHAIN,
|
||||
SPACED_DATA_DIR: dataDir,
|
||||
SPACED_RPC_BIND: '127.0.0.1',
|
||||
// Listen on all interfaces so the spaced RPC can be exposed externally via
|
||||
// the "Spaces API" StartOS interface. Internal clients (subs, certrelay,
|
||||
// indexer, space-cli, health checks) still connect over loopback below.
|
||||
SPACED_RPC_BIND: '0.0.0.0',
|
||||
SPACED_RPC_PORT: String(spacedRpcPort),
|
||||
SPACED_RPC_URL: `http://127.0.0.1:${spacedRpcPort}`,
|
||||
SPACED_BLOCK_INDEX: 'true',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { VersionGraph } from '@start9labs/start-sdk'
|
||||
import { v_0_0_9_2 } from './v0.0.9.2'
|
||||
import { v_0_0_9_3 } from './v0.0.9.3'
|
||||
|
||||
export const versionGraph = VersionGraph.of({
|
||||
current: v_0_0_9_2,
|
||||
current: v_0_0_9_3,
|
||||
other: [],
|
||||
})
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
||||
|
||||
export const v_0_0_9_2 = VersionInfo.of({
|
||||
version: '0.0.9:2',
|
||||
export const v_0_0_9_3 = VersionInfo.of({
|
||||
version: '0.0.9:3',
|
||||
releaseNotes: {
|
||||
en_US: `- Added a dedicated "Subs API" interface (type api) on the subs daemon's port (7777), distinct from the Subspaces Prover (8888) and Subspaces Registry (8081) interfaces. The subs daemon is "subsd — an HTTP REST API server"; this surfaces that REST API as its own dashboard entry.
|
||||
en_US: `- Exposed the spaced JSON-RPC API as a new "Spaces API" StartOS interface (port 7225) and changed SPACED_RPC_BIND from 127.0.0.1 to 0.0.0.0 so external processes can reach it. It remains authenticated with the spaced RPC credentials (store.spacedAuth); internal clients still connect over loopback.
|
||||
- Added a dedicated "Subs API" interface (type api) on the subs daemon's port (7777), distinct from the Subspaces Prover (8888) and Subspaces Registry (8081) interfaces. The subs daemon is "subsd — an HTTP REST API server"; this surfaces that REST API as its own dashboard entry.
|
||||
- New "Enable / Disable Subspaces Prover" action independently gates just the subs-prover daemon (store.enableSubsProver), **disabled by default**. When off, subs-prover does not start (it runs lengthy boot-time timing tests), but its interface on 8888 stays registered. It is added last and nothing depends on it, so its slow startup never blocks subs, the registry, or certrelay.
|
||||
- Embedded Certrelay (prebuilt \`horologger/certrelay:v0.2.3\` image, static musl binaries). Always on — runs the \`certrelay\` server on port 7778 from service start, as its own StartOS interface. It serves cryptographic proofs binding Bitcoin-anchored handles to owner keys, talking to the local spaced over loopback using the store.spacedAuth credentials. The bundled \`fabric\` CLI is copied to /data/bin/fabric so it's runnable from the Space-CLI Web UI. New "Configure Certrelay" action sets CERTRELAY_SELF_URL, CERTRELAY_BOOTSTRAP, and CERTRELAY_HEALTHCHECK_HANDLE (stored in store.json; saving restarts the service). Set CERTRELAY_SELF_URL to the publicly visible URL StartOS exposes for the Certrelay interface.
|
||||
- Removed the build-from-source chains for the Go indexer and the SvelteKit explorer, and dropped their builder images (\`golang:1.23-alpine\`, \`node:20-alpine\`). This shrinks the .s9pk and removes the multi-minute first-enable compile. The indexer + explorer-UI daemons are now stubbed with TODOs in startos/main.ts pending prebuilt images (indexer image not yet produced; explorer image to be provided). Enabling the embedded explorer currently starts PostgreSQL only. All explorer-indexer actions (show-db-credentials, reset-db-state, reset-indexer-state, reset-explorer-state) are retained.
|
||||
Reference in New Issue
Block a user