# Deploying a runtime
This doc shows step-by-step how to run a compute node that serves a paratime.
Environment:
```bash=
$ oasis -v
Software version: v0.16.1-git49b6f25
Oasis SDK version: v0.16.0
Oasis Core version: v0.2505.0
Go toolchain version: go1.24.7
$ oasis-node -v
Software version: 25.6
Consensus:
Consensus protocol version: 7.0.0
Runtime:
Host protocol version: 5.1.0
Committee protocol version: 5.0.0
Go toolchain version: 1.25.2
$ rustup show
active toolchain
----------------
name: nightly-2025-05-09-x86_64-unknown-linux-gnu
active because: overridden by '/home/marcelo/git/marcelomorgado/matrix/minimal-runtime/rust-toolchain.toml'
installed targets:
wasm32-unknown-unknown
x86_64-fortanix-unknown-sgx
x86_64-unknown-linux-gnu
```
## Deploy a minimal-runtime
A minimal runtime repo was built based on [this doc](https://docs.oasis.io/build/tools/build-paratime/minimal-runtime).
The code wasn't copiling (I suppose it's due to outdated code) so I did fix by borrowing some code from the Emerald Paratime.
### compilation
```bash=
OASIS_UNSAFE_USE_LOCALNET_CHAINID=42260 cargo build
export RUNTIME_ID=8000000000000000000000000000000000000000000000000000000000000000
orc init target/release/minimal-paratime --runtime-id $RUNTIME_ID
```
## Run a validator node
```bash=
#!/bin/bash
export BASE_DIR=/tmp/runtime-example
rm -rf $BASE_DIR
mkdir $BASE_DIR
${OASIS_CORE_PATH}/oasis-net-runner \
--basedir.no_temp_dir \
--basedir $BASE_DIR \
--fixture.default.node.binary ${OASIS_CORE_PATH}/oasis-node \
--fixture.default.setup_runtimes=false \
--fixture.default.runtime.loader ${OASIS_CORE_PATH}/oasis-core-runtime-loader \
--fixture.default.runtime.provisioner unconfined \
--fixture.default.keymanager.binary '' \
--fixture.default.deterministic_entities \
--fixture.default.fund_entities \
--fixture.default.num_entities 1
```
## Setup and run compute node
Build config file
```bash=
#!/bin/bash
export RUNTIME_ORC=/path/to/minimal-runtime.orc
export RUNTIME_NODE_DIR=/path/to/compute-0
export RUNTIME_LOADER=$OASIS_CORE_PATH/oasis-core-runtime-loader
export LOCAL_NETWORK_DIR=/tmp/runtime-example/net-runner/network
export SEED_NODE_ID=`cat $LOCAL_NETWORK_DIR/seed-0/p2p_pub.pem | head -2 | tail -1`
export SEED_NODE_ADDRESS1=$SEED_NODE_ID@127.0.0.1:20000
export SEED_NODE_ADDRESS2=$SEED_NODE_ID@127.0.0.1:20001
export RUNTIME_ID=8000000000000000000000000000000000000000000000000000000000000000
export RUNTIME_NODE_CONFIG=$RUNTIME_NODE_DIR/config.yml
export EXTERNAL_IP="127.0.0.1"
export GENESIS_JSON=$LOCAL_NETWORK_DIR/genesis.json
export CONSENSUS_PORT=20006
export P2P_PORT=20007
export ENTITY_DIR="$LOCAL_NETWORK_DIR/entity-1"
export ENTITY_ID=`cat $ENTITY_DIR/entity.json | jq -r .id`
mkdir -m 0700 $RUNTIME_NODE_DIR/data
cat << EOF > "${RUNTIME_NODE_CONFIG}"
mode: compute
common:
data_dir: ${RUNTIME_NODE_DIR}/data
log:
file: ${RUNTIME_NODE_DIR}/node.log
format: logfmt
level:
default: INFO
debug:
allow_root: true
rlimit: 50000
genesis:
file: ${GENESIS_JSON}
consensus:
validator: false
listen_address: tcp://0.0.0.0:${CONSENSUS_PORT}
external_address: tcp://${EXTERNAL_IP}:${CONSENSUS_PORT}
p2p:
max_num_inbound_peers: 100
max_num_outbound_peers: 20
send_rate: 5120000
recv_rate: 5120000
persistent_peers: []
unconditional_peers: []
disable_peer_exchange: false
persistent_peers_max_dial_period: 0s
submission:
gas_price: 0
max_fee: 10000000000
halt_epoch: 18446744073709551615
upgrade_stop_delay: 10s
prune:
strategy: none
num_kept: 3600
interval: 2m0s
checkpointer:
disabled: false
check_interval: 1m0s
parallel_chunker: false
supplementary_sanity:
enabled: false
interval: 10
debug:
addr_book_lenient: true
allow_duplicate_ip: true
runtime:
runtimes:
- id: ${RUNTIME_ID}
paths:
- ${RUNTIME_ORC}
provisioner: unconfined
sandbox_binary: /usr/bin/bwrap
environment: auto
prune:
strategy: none
interval: 2m0s
num_kept: 600
indexer:
batch_size: 1000
tx_pool:
schedule_max_tx_pool_size: 50000
schedule_tx_cache_size: 100000
check_tx_max_batch_size: 128
recheck_interval: 5
republishinterval: 1m0s
pre_warm_epochs: 3
registries:
- http://127.0.0.1:20012
sgx:
loader: ${RUNTIME_LOADER}
tdx:
cid_start: 2769616896
cid_count: 1024
log:
max_log_size: 1048576
p2p:
port: ${P2P_PORT}
seeds:
- ${SEED_NODE_ADDRESS1}
- ${SEED_NODE_ADDRESS2}
discovery:
bootstrap:
enable: true
retention_period: 1h0m0s
gossipsub:
peer_outbound_queue_size: 32
validate_queue_size: 32
validate_concurrency: 1024
validate_throttle: 8192
peer_manager:
connectedness_low_water: 0.2
connection_manager:
max_num_peers: 100
peer_grace_period: 20s
pprof:
bind_address: 0.0.0.0:0
metrics:
mode: none
address: 127.0.0.1:3000
interval: 5s
registration:
entity: "${ENTITY_DIR}/entity.json"
#entity_id: ${ENTITY_ID}
storage:
backend: auto
max_cache_size: 256mb
fetcher_count: 4
public_rpc_enabled: true
checkpoint_sync_disabled: true
checkpointer:
enabled: true
check_interval: 0s
parallel_chunker: false
sentry:
enabled: false
control:
port: 9009
authorized_pubkeys: []
EOF
```
## Start compute node
```bash=
#!/bin/bash
oasis-node --config config.yml \
--debug.dont_blame_oasis \
--debug.allow_test_keys
```
## Setup CLI
```bash=
export ADDR=unix:data/internal.sock
oasis network remove localnet -y
oasis network add-local localnet --symbol TEST $ADDR -y
oasis network set-default localnet
```
## Register compute node
```bash=
#!/bin/bash
export ADDR=unix:data/internal.sock
export RUNTIME_NODE_ID=`oasis-node control status -a $ADDR | jq .identity.node -r`
export ENTITY_FILE=/tmp/runtime-example/net-runner/network/entity-1/entity.json
cat $ENTITY_FILE | jq --arg id "${RUNTIME_NODE_ID}" '.nodes |= .+ [$id]' > /tmp/tmp
mv /tmp/tmp $ENTITY_FILE
# Update entity
oasis account entity register $ENTITY_FILE --account entity1
```
## Register runtime
```bash=
#!/bin/bash
export ADDR=unix:/path/to/compute-0/data/internal.sock
export LOCAL_NETWORK_DIR=/tmp/runtime-example/net-runner/network
export ENTITY_DIR=$LOCAL_NETWORK_DIR/entity-1/
export ENTITY_ID=`cat $ENTITY_DIR/entity.json | jq -r .id`
export GENESIS_JSON=$LOCAL_NETWORK_DIR/genesis.json
export RUNTIME_ID=8000000000000000000000000000000000000000000000000000000000000000
export RUNTIME_DESCRIPTOR=/tmp/runtime-example/runtime_descriptor.json
export LATEST_HEIGHT=`oasis-node control status -a $ADDR | jq .consensus.latest_height`
export VALID_FROM=$((LATEST_HEIGHT + 50))
export VERSION_MAJOR=0
export VERSION_MINOR=1
cat << EOF > "${RUNTIME_DESCRIPTOR}"
{
"v": 3,
"id": "${RUNTIME_ID}",
"entity_id": "${ENTITY_ID}",
"genesis": {
"state_root": "c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a",
"round": 0
},
"kind": 1,
"tee_hardware": 0,
"executor": {
"group_size": 1,
"group_backup_size": 0,
"allowed_stragglers": 0,
"round_timeout": 5,
"max_messages": 32
},
"txn_scheduler": {
"algorithm": "simple",
"batch_flush_timeout": 1000000000,
"max_batch_size": 1000,
"max_batch_size_bytes": 16777216,
"propose_batch_timeout": 2000000000
},
"storage": {
"checkpoint_interval": 0,
"checkpoint_num_kept": 0,
"checkpoint_chunk_size": 0
},
"admission_policy": {
"any_node": {}
},
"staking": {
"min_in_message_fee": "0"
},
"governance_model": "entity",
"deployments": [
{
"version": {
"major": ${VERSION_MAJOR},
"minor": ${VERSION_MINOR}
},
"valid_from": ${VALID_FROM}
}
]
}
EOF
export NONCE=1
oasis-node registry runtime gen_register \
--transaction.fee.gas 1000 \
--transaction.fee.amount 0 \
--transaction.file /tmp/runtime-example/register_runtime.tx \
--transaction.nonce $NONCE \
--genesis.file $GENESIS_JSON \
--signer.backend file \
--signer.dir $ENTITY_DIR \
--runtime.descriptor $RUNTIME_DESCRIPTOR \
--debug.dont_blame_oasis \
--debug.allow_test_keys -y
oasis-node consensus submit_tx --transaction.file /tmp/runtime-example/register_runtime.tx --address $ADDR
```
## Debug
<details>
<summary>oasis-node control status -a $ADDR</summary>
```bash=
{
"software_version": "25.6",
"mode": "compute",
"debug": {
"enabled": true,
"allow_root": true
},
"identity": {
"node": "UtP9DV7xdsZGCpS1z9A/uGQXWZqBqBqoMeKZKehvh1M=",
"consensus": "gebMxZT6WRdVDnQ6qU7on3nNjhANOJpNeTTXTGRMAns=",
"tls": "/LKPHkvzvx8fOJ6AWz68xiA6ez9wGodaATp5+4fon7w="
},
"consensus": {
"status": "ready",
"version": {
"major": 7
},
"backend": "tendermint",
"features": 3,
"latest_height": 796,
"latest_hash": "875311739ac22a8c9f3044a6d91d2abefc3d02b0ddba83033c658834a07d3771",
"latest_time": "2026-01-09T13:52:05Z",
"latest_epoch": 26,
"latest_state_root": {
"ns": "0000000000000000000000000000000000000000000000000000000000000000",
"version": 795,
"root_type": 1,
"hash": "b49ebe0eb4f8cfd2bc315611f3e32fd4ae426ee8faf8bacbb91cb090c2a05dc3"
},
"latest_block_size": 926,
"genesis_height": 1,
"genesis_hash": "4fd2dda1f40d721d3a3a7ac0eaf017e99b4a5f503bde2eb29fd7cc346c7dfe33",
"last_retained_height": 1,
"last_retained_hash": "4fd2dda1f40d721d3a3a7ac0eaf017e99b4a5f503bde2eb29fd7cc346c7dfe33",
"chain_context": "4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809",
"is_validator": false,
"p2p": {
"pub_key": "u+ZT7NPy8iyuVRwy78caoAC/oVJAkLmm5vBwsVsIYDI=",
"peer_id": "3591dcf2dcc06060f6b985b999de289041da4070",
"addresses": [
"u+ZT7NPy8iyuVRwy78caoAC/oVJAkLmm5vBwsVsIYDI=@127.0.0.1:20006"
],
"peers": [
"7837ec1d84e209003d2b67dafdc1a1f597a1026d@127.0.0.1:20004",
"0fcfe995539683b92c8b5aedefcd6a54bade8e8d@127.0.0.1:20002",
"3cf23ebc1a466499ada519770984761b2d7322ae@127.0.0.1:58072"
]
}
},
"light_client": {
"latest_height": 0,
"latest_hash": "0000000000000000000000000000000000000000000000000000000000000000",
"latest_time": "0001-01-01T00:00:00Z",
"oldest_height": 0,
"oldest_hash": "0000000000000000000000000000000000000000000000000000000000000000",
"oldest_time": "0001-01-01T00:00:00Z",
"peer_ids": [
"12D3KooWM3HFBfGEBwwAPz3yPpEuyP8XW58Dnb197GqdH5BSS6hF",
"12D3KooWQgRgjkvs2zdCHCWQhfVTKUqccbqNwNJeradHbT6VGYK9"
]
},
"runtimes": {
"8000000000000000000000000000000000000000000000000000000000000000": {
"descriptor": {
"v": 3,
"id": "8000000000000000000000000000000000000000000000000000000000000000",
"entity_id": "JTUtHd4XYQjh//e6eYU7Pa/XMFG88WE+jixvceIfWrk=",
"genesis": {
"state_root": "c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a",
"round": 0
},
"kind": 1,
"tee_hardware": 0,
"executor": {
"group_size": 1,
"group_backup_size": 0,
"allowed_stragglers": 0,
"round_timeout": 5,
"max_messages": 32
},
"txn_scheduler": {
"batch_flush_timeout": 1000000000,
"max_batch_size": 1000,
"max_batch_size_bytes": 16777216,
"propose_batch_timeout": 2000000000
},
"storage": {
"checkpoint_interval": 0,
"checkpoint_num_kept": 0,
"checkpoint_chunk_size": 0
},
"admission_policy": {
"any_node": {}
},
"staking": {
"min_in_message_fee": "0"
},
"governance_model": "entity",
"deployments": [
{
"version": {
"minor": 1
},
"valid_from": 500
}
]
},
"latest_round": 1,
"latest_hash": "d905225e286ea5764e9af2dd47755bc2c37c1df2efd6fd9b923603ced6da2cd1",
"latest_time": "2026-01-09T13:47:36Z",
"latest_state_root": {
"ns": "8000000000000000000000000000000000000000000000000000000000000000",
"version": 1,
"root_type": 1,
"hash": "c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a"
},
"genesis_round": 0,
"genesis_hash": "bf97616631b10256dbec2d6b1a25046d46a01bbe62619825f66845a6fadfa030",
"last_retained_round": 0,
"last_retained_hash": "bf97616631b10256dbec2d6b1a25046d46a01bbe62619825f66845a6fadfa030",
"committee": {
"status": "waiting for hosted runtime provision",
"active_version": null,
"latest_round": 1,
"latest_height": 540,
"executor_roles": null,
"scheduler_rank": 18446744073709551615,
"peers": null,
"host": {
"versions": [
{
"minor": 1
}
]
}
},
"executor": {
"status": "waiting for runtime readiness"
},
"storage": {
"status": "syncing rounds",
"last_finalized_round": 1
},
"indexer": {
"status": "indexing",
"last_round": 0
},
"provisioner": "composite{none: sandbox, sgx: sgx, tdx: tdx-qemu}",
"components": [
{
"kind": "ronl",
"version": {
"minor": 1
}
}
]
}
},
"registration": {
"last_attempt_successful": false,
"last_attempt": "0001-01-01T00:00:00Z",
"last_registration": "0001-01-01T00:00:00Z"
},
"p2p": {
"pub_key": "u+ZT7NPy8iyuVRwy78caoAC/oVJAkLmm5vBwsVsIYDI=",
"peer_id": "12D3KooWNTr7Qz2kgKfqEYezJrsWTTkX4CKzGHJGTCuYxd8WyNu7",
"addresses": [
"127.0.0.1:20007",
"192.168.1.81:20007"
],
"num_peers": 2,
"num_connections": 2,
"protocols": {
"/oasis/4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809/checkpointsync/8000000000000000000000000000000000000000000000000000000000000000/1.0.0": 0,
"/oasis/4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809/diffsync/8000000000000000000000000000000000000000000000000000000000000000/1.0.0": 0,
"/oasis/4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809/light/1.0.0": 2,
"/oasis/4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809/storagesync/8000000000000000000000000000000000000000000000000000000000000000/2.0.0": 0,
"/oasis/4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809/txsync/8000000000000000000000000000000000000000000000000000000000000000/2.0.0": 0
},
"topics": {
"oasis/4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809/committee/8000000000000000000000000000000000000000000000000000000000000000/5.0.0": 0,
"oasis/4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809/tx/8000000000000000000000000000000000000000000000000000000000000000/5.0.0": 0
}
}
}
```
</details>
<details>
<summary>oasis network status</summary>
```=
=== NETWORK STATUS ===
Network: localnet
Node's ID: UtP9DV7xdsZGCpS1z9A/uGQXWZqBqBqoMeKZKehvh1M=
Core version: 25.6
==== Consensus ====
Status: ready
Version: 7.0.0
Chain context: unknown (4ef7fc27a052780a3a9dd91387214295c5d023a705e587188d39a2d0e2645809)
Latest height: 954 (2026-01-09 13:54:51 +0000 WET)
Latest block hash: 4c35abea4dc7ba2c8aa0cb1d2b431796fcd9c57e9de1506b0c06bee85fc1a99b
Latest epoch: 31
Is validator: false
Registration: false
==== ParaTimes ====
unknown (8000000000000000000000000000000000000000000000000000000000000000):
Kind: compute
Is confidential: false
Status: waiting for hosted runtime provision
Latest round: 1 (2026-01-09 13:47:36 +0000 WET)
Last finalized round: 1
Storage status: syncing rounds
Available version(s): 0.1.0
Number of peers: 0
```
</details>
<details>
<summary>oasis network entities</summary>
```bash=
{
"v": 2,
"id": "JTUtHd4XYQjh//e6eYU7Pa/XMFG88WE+jixvceIfWrk=",
"nodes": [
"LQu4ZtFg8OJ0MC4M4QMeUR7Is6Xt4A/CW+PK/7TPiH0=",
"UtP9DV7xdsZGCpS1z9A/uGQXWZqBqBqoMeKZKehvh1M="
]
}
{
"v": 2,
"id": "TqUyj5Q+9vZtqu10yw6Zw7HEX3Ywe0JQA9vHyzY47TU="
}
```
</details>
<details>
<summary>oasis network show native-token</summary>
```bash=
Network: localnet
Token's ticker symbol: TEST
Token's base-10 exponent: 6
Total supply: 2001000000.0 TEST
Common pool: 0.0 TEST
Last block fees: 0.0 TEST
Governance deposits: 0.0 TEST
Debonding interval: 1 epoch(s)
=== STAKING THRESHOLDS ===
entity: 0.0 TEST
node-validator: 0.0 TEST
node-compute: 0.0 TEST
node-keymanager: 0.0 TEST
runtime-compute: 0.0 TEST
runtime-keymanager: 0.0 TEST
```
</details>
<details>
<summary>oasis network show nodes</summary>
```bash=
{
"v": 3,
"id": "LQu4ZtFg8OJ0MC4M4QMeUR7Is6Xt4A/CW+PK/7TPiH0=",
"entity_id": "JTUtHd4XYQjh//e6eYU7Pa/XMFG88WE+jixvceIfWrk=",
"expiration": 37,
"tls": {
"pub_key": "gH8PRm6WdOAraT21sYPlhDMfpCfw3RJmXCICr/rRzwU="
},
"p2p": {
"id": "3NaiXoRM24g/ICmKIG3/UO0OQxe+2irGUZ7rWh8J+TA=",
"addresses": [
"127.0.0.1:20003",
"192.168.1.81:20003"
]
},
"consensus": {
"id": "KFkcmGExdwYJdrgnD20wbnARG67koHQZk5XHSImGN6Q=",
"addresses": [
"3NaiXoRM24g/ICmKIG3/UO0OQxe+2irGUZ7rWh8J+TA=@127.0.0.1:20002"
]
},
"vrf": {
"id": "Srdsmd8tFNvWoHwY2enMq2RNoECBwTktMwa2ecDGyi4="
},
"runtimes": null,
"roles": "validator",
"software_version": "25.6"
}
```
</details>
<details>
<summary>oasis network show $RUNTIME_NODE_ID</summary>
```bash=
Error: id 'UtP9DV7xdsZGCpS1z9A/uGQXWZqBqBqoMeKZKehvh1M=' not found
```
</details>
<details>
<summary>cat compute-0/node.log | grep err</summary>
```=
...
level=error ts=2026-01-09T13:59:36.894339619Z caller=grpc.go:203 module=grpc/internal msg="request failed" method=/oasis-core.Registry/GetEntity req_seq=40 err="rpc error: code = Unknown desc = registry: no such entity"
level=error ts=2026-01-09T13:59:36.894657229Z caller=grpc.go:203 module=grpc/internal msg="request failed" method=/oasis-core.Registry/GetNodeStatus req_seq=41 err="rpc error: code = Unknown desc = registry: no such node"
level=info ts=2026-01-09T13:59:36.897002528Z caller=component.go:34 module=grpc msg="[transport] [server-transport 0xc0083c9380] loopyWriter exiting with error: transport closed by client\n"
level=warn ts=2026-01-09T13:59:42.518978976Z caller=node.go:453 module=worker/common/committee runtime_id=8000000000000000000000000000000000000000000000000000000000000000 msg="failed to activate runtime version(s)" err="runtime/host/multi: no active version" version=null next_version=null
level=error ts=2026-01-09T13:59:44.484155571Z caller=notifier_light.go:168 module=runtime/notifier/light_blocks runtime_id=8000000000000000000000000000000000000000000000000000000000000000 msg="failed to notify runtime of a new consensus layer block" err="context deadline exceeded" height=1222
...
```
</details>
<details>
<summary>cat validator-0/node.log | grep err</summary>
```=
...
level=error ts=2026-01-09T13:46:34.849242842Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
level=error ts=2026-01-09T13:46:49.620457985Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
level=error ts=2026-01-09T13:47:06.417619771Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
level=error ts=2026-01-09T13:47:37.838071438Z caller=shuffle.go:411 module=consensus/cometbft/abci mode="begin block" msg="committee size exceeds available nodes" kind=executor runtime_id=8000000000000000000000000000000000000000000000000000000000000000 wanted_nodes=1 nr_nodes=0
level=error ts=2026-01-09T13:47:37.897740467Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
level=error ts=2026-01-09T13:48:09.382272841Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
level=error ts=2026-01-09T13:48:40.862469817Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
level=error ts=2026-01-09T13:48:57.023240275Z caller=switch.go:338 module= module=cometbft:p2p msg="Stopping peer for error" peer="Peer{MConn{127.0.0.1:41308} 3591dcf2dcc06060f6b985b999de289041da4070 in}" err=EOF
level=error ts=2026-01-09T13:49:12.332925605Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
level=error ts=2026-01-09T13:49:43.81272498Z caller=worker.go:984 module=worker/registration msg="failed to obtain any consensus address from the configured sentry nodes" sentry_addresses="unsupported value type"
...
```
</details>
<details>
<summary>oasis-node registry runtime list --verbose --include_suspended -a $ADDR</summary>
```=
Command "list" is deprecated, use the `oasis` CLI instead.
level=error ts=2026-01-09T14:06:03.60415839Z caller=grpc.go:243 module=grpc/client msg="request failed" method=/oasis-core.Registry/GetRuntimes req_seq=1 rsp="unsupported value type" err="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing: dial unix internal.sock: connect: no such file or directory\""
level=error ts=2026-01-09T14:06:03.60419136Z caller=runtime.go:131 module=cmd/registry/runtime msg="failed to query runtimes" err="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing: dial unix internal.sock: connect: no such file or directory\""
```
</details>