Skip to content

Join Blend as core node#340

Open
kashepavadan wants to merge 2 commits into
mainfrom
join-blend
Open

Join Blend as core node#340
kashepavadan wants to merge 2 commits into
mainfrom
join-blend

Conversation

@kashepavadan

Copy link
Copy Markdown
Contributor

From: #331

@weboko weboko left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test

@weboko weboko left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dogfooded on Linux x86_64 (Ubuntu 24.04) with logos-blockchain-node v0.1.2. Downloaded binary from the releases page, ran init, validated config, started the node, and exercised every API call in this tutorial against the live OpenAPI spec at /api-docs/openapi.json. Found critical blockers — two API endpoints referenced in steps 6 and 7 do not exist in v0.1.2, and the wallet balance step will consistently return 404 for the blend key.


Complete these steps to fund the required keys, retrieve a locked note, and submit your Blend join declaration.

1. Start the node and wait for it to switch to "Online" mode. This takes approximately one hour.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sync time conflicts with the prerequisite guide.

The prerequisite doc (Run a Logos Blockchain node from CLI) says "Bootstrapping may take 12 to 24 hours." — not one hour.

Suggested change
1. Start the node and wait for it to switch to "Online" mode. This takes approximately one hour.
1. Start the node and wait for it to switch to "Online" mode. Bootstrapping may take 12 to 24 hours.


1. Start the node and wait for it to switch to "Online" mode. This takes approximately one hour.
1. Use the [faucet](https://testnet.blockchain.logos.co/web/faucet/) to send funds to the public key specified in the `user_config.yaml` file, in `sdp.wallet.funding_pk`.
1. Use the faucet to send funds to the public key specified in the `user_config.yaml` file, in `blend.core.zk.secret_key_kms_id`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

blend.core.zk.secret_key_kms_id is a KMS identifier, not a public key field — and the wallet will not track it by default.

Tested on v0.1.2: calling GET /wallet/<blend.core.zk.secret_key_kms_id>/balance returns 404 The requested address could not be found in the wallet. The wallet service only watches keys listed in wallet.known_keys, and the blend ZK key is absent from that section in the default generated config.

Two fixes needed:

  1. Clarify to users what value the faucet expects. In logos-blockchain's KMS, the KMS ID for a ZK key also serves as its public identifier — but this is non-obvious from the field name secret_key_kms_id.
  2. Before starting the node, users must add the blend key to wallet.known_keys in user_config.yaml, otherwise step 4 will always return 404.

1. Start the node and wait for it to switch to "Online" mode. This takes approximately one hour.
1. Use the [faucet](https://testnet.blockchain.logos.co/web/faucet/) to send funds to the public key specified in the `user_config.yaml` file, in `sdp.wallet.funding_pk`.
1. Use the faucet to send funds to the public key specified in the `user_config.yaml` file, in `blend.core.zk.secret_key_kms_id`.
1. Call the `<YOUR_NODE_IP>/wallet/<pk>/balance` endpoint, using the key from the previous step as `<pk>`, to view the balances of your notes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wallet endpoint returns 404 for any key not tracked in wallet.known_keys, and the URL is missing the port.

Tested on v0.1.2: curl http://localhost:8080/wallet/14e4035a.../balanceThe requested address could not be found in the wallet.

Suggested change
1. Call the `<YOUR_NODE_IP>/wallet/<pk>/balance` endpoint, using the key from the previous step as `<pk>`, to view the balances of your notes.
1. Call the `http://<YOUR_NODE_IP>:8080/wallet/<pk>/balance` endpoint, using the value from `blend.core.zk.secret_key_kms_id` as `<pk>`, to view the balances of your notes.

1. Use the [faucet](https://testnet.blockchain.logos.co/web/faucet/) to send funds to the public key specified in the `user_config.yaml` file, in `sdp.wallet.funding_pk`.
1. Use the faucet to send funds to the public key specified in the `user_config.yaml` file, in `blend.core.zk.secret_key_kms_id`.
1. Call the `<YOUR_NODE_IP>/wallet/<pk>/balance` endpoint, using the key from the previous step as `<pk>`, to view the balances of your notes.
1. From the response, select either one of the returned notes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The /wallet/<pk>/balance endpoint does not return a list of notes — it returns a single balance summary.

Actual v0.1.2 response:

{"tip": "...", "balance": 1000, "address": "..."}

There is no notes-listing endpoint in v0.1.2's OpenAPI spec. This step needs to either reference a different endpoint that returns individual note IDs, or explain what value from the balance response maps to locked_note_id in the next step.

1. Use the faucet to send funds to the public key specified in the `user_config.yaml` file, in `blend.core.zk.secret_key_kms_id`.
1. Call the `<YOUR_NODE_IP>/wallet/<pk>/balance` endpoint, using the key from the previous step as `<pk>`, to view the balances of your notes.
1. From the response, select either one of the returned notes.
1. Send a `POST` request to `<YOUR_NODE_IP>/blend/join` with the following payload:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/blend/join does not exist in v0.1.2.

Verified against the OpenAPI spec served by a running v0.1.2 node (/api-docs/openapi.json). The route is not registered. The available SDP-related endpoints are:

  • POST /sdp/declaration
  • POST /sdp/activity
  • POST /sdp/withdrawal

If this tutorial targets a future release, please add a note indicating the required version. If /sdp/declaration is the correct endpoint, update the step and confirm the expected request body schema.

1. Send a `POST` request to `<YOUR_NODE_IP>/blend/join` with the following payload:

```bash
{"locator": <multiaddr>, "locked_note_id": <node_id>}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JSON placeholders are unquoted (invalid JSON) and the placeholder name <node_id> does not match the field name locked_note_id.

Suggested change
{"locator": <multiaddr>, "locked_note_id": <node_id>}
{"locator": "<multiaddr>", "locked_note_id": "<note-id>"}

- `<multiaddr>`: a publicly reachable multiaddress for the node (IP or DNS)
- `<locked_note_id>`: the note ID from the previous step.

1. Confirm the declaration was submitted by calling `<YOUR_NODE_IP>/mantle/sdp/declarations`. If your declaration is included in the set, you will see your node's `zk_id` there.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/mantle/sdp/declarations returns 404 on v0.1.2 — this endpoint does not exist.

Verified: the route is absent from the node's OpenAPI spec. The available /mantle endpoints are GET /mantle/metrics and POST /mantle/status. Neither lists declarations.

Please confirm the correct confirmation endpoint and update this step, or note the target release version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants