You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-15Lines changed: 10 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,6 @@ cargo +nightly build -p kinode
42
42
No security audits of this crate have ever been performed. This software is under active development and should be **used at your own risk**.
43
43
44
44
## Boot
45
-
Get an eth-sepolia-rpc API key and pass that as an argument. You can get one for free at `alchemy.com`.
46
45
47
46
Make sure not to use the same home directory for two nodes at once! You can use any name for the home directory: here we just use `home`. The `--` here separates cargo arguments from binary arguments.
48
47
@@ -52,18 +51,20 @@ TODO: document feature flags in `--simulation-mode`
52
51
cargo +nightly run -p kinode -- home
53
52
```
54
53
55
-
On boot you will be prompted to navigate to `localhost:8080`. Make sure your browser wallet matches the network that the node is being booted on. Follow the registration UI -- if you want to register a new ID you will either need Optimism ETH or an invite code.
54
+
On boot you will be prompted to navigate to `localhost:8080` (or whatever HTTP port your node bound to: it will try 8080 and go up from there, or use the port passed with the `--http-port` boot flag. Make sure your browser wallet matches the network that the node is being booted on. Follow the registration UI -- if you want to register a new ID you will either need Optimism ETH or an invite code.
56
55
57
56
## Configuring the ETH RPC Provider
58
57
59
-
By default, a node will use the [hardcoded providers](./kinode/default_providers_mainnet.json) for the network it is booted on. A node can use a WebSockets RPC URL directly, or use another Kinode as a relay point. To adjust the providers a node uses, just create and modify the `.eth_providers` file in the node's home folder (set at boot). See the Kinode Book for more docs, and see the [default providers file here](./kinode/default_providers_mainnet.json) for a template to create `.eth_providers`.
58
+
By default, a node will use the [hardcoded providers](./kinode/src/eth/default_providers_mainnet.json) for the network it is booted on. A node can use a WebSockets RPC URL directly, or use another Kinode as a relay point. To adjust the providers a node uses, just create and modify the `.eth_providers` file in the node's home folder (set at boot). See the Kinode Book for more docs, and see the [default providers file here](./kinode/src/eth/default_providers_mainnet.json) for a template to create `.eth_providers`.
60
59
61
-
You may also add a RPC provider or otherwise modify your configuration by sending messages from the terminal to the `eth:distro:sys` process. Use this message format to add a provider -- this will make your node's performance better when accessing a blockchain:
60
+
You may also add a RPC provider or otherwise modify your configuration by sending messages from the terminal to the `eth:distro:sys` process. You can get one for free at `alchemy.com`. Use this message format to add a provider -- this will make your node's performance better when accessing a blockchain:
62
61
```
63
62
m our@eth:distro:sys '{"AddProvider": {"chain_id": <SOME_CHAIN_ID>, "trusted": true, "provider": {"RpcUrl": "<WS_RPC_URL>"}}}'
64
63
```
65
64
We will soon add a settings GUI for this.
66
65
66
+
You can also do the same thing by using the `--rpc` boot flag with an Optimism WebSockets RPC URL.
67
+
67
68
## Distro and Runtime processes
68
69
69
70
The base OS install comes with certain runtime modules. These are interacted with in the same way as userspace processes, but are deeply ingrained to the system and the APIs they present at their Process IDs are assumed to be available by userspace processes. All of these are identified in the `distro:sys` package.
@@ -89,9 +90,11 @@ The distro userspace packages are:
89
90
-`app_store:sys`
90
91
-`chess:sys`
91
92
-`homepage:sys`
93
+
-`kino_updates:sys`
92
94
-`kns_indexer:sys`
95
+
-`settings:sys`
93
96
-`terminal:sys`
94
-
-`tester:sys` (used with `kit` for running test suites)
97
+
-`tester:sys` (used with `kit` for running test suites, only installed in `simulation-mode`)
95
98
96
99
The `sys` publisher is not a real node ID, but it's also not a special case value. Packages, whether runtime or userspace, installed from disk when a node bootstraps do not have their package ID or publisher node ID validated. Packages installed (not injected locally, as is done during development) after a node has booted will have their publisher field validated.
97
100
@@ -110,7 +113,7 @@ The `sys` publisher is not a real node ID, but it's also not a special case valu
110
113
- UpArrow/DownArrow or CTRL+P/CTRL+N to move up and down through command history
111
114
- CTRL+R to search history, CTRL+R again to toggle through search results, CTRL+G to cancel search
112
115
113
-
-`m <address> <json>`: send an inter-process message. <address> is formatted as <node>@<process_id>. <process_id> is formatted as <process_name>:<package_name>:<publisher_node>. JSON containing spaces must be wrapped in single-quotes (`''`).
116
+
-`m <address> '<json>'`: send an inter-process message. <address> is formatted as <node>@<process_id>. <process_id> is formatted as <process_name>:<package_name>:<publisher_node>. JSON containing spaces must be wrapped in single-quotes (`''`).
114
117
- Example: `m our@eth:distro:sys "SetPublic" -a 5`
115
118
- the '-a' flag is used to expect a response with a given timeout
116
119
-`our` will always be interpolated by the system as your node's name
@@ -127,14 +130,6 @@ The `sys` publisher is not a real node ID, but it's also not a special case valu
127
130
-`peers`: print the peers the node currently hold connections with
128
131
-`peer <name>`: print the peer's PKI info, if it exists
129
132
130
-
### Terminal example usage
131
-
132
-
Download and install an app:
133
-
```
134
-
m our@main:app_store:sys '{"Download": {"package": {"package_name": "<pkg>", "publisher_node": "<node>"}, "install_from": "<node>"}}'
135
-
m our@main:app_store:sys '{"Install": {"package_name": "<pkg>", "publisher_node": "<node>"}}'
136
-
```
137
-
138
133
## Running as a Docker container
139
134
140
135
This image expects a volume mounted at `/kinode-home`. This volume may be empty or may contain another Kinode's data. It will be used as the home directory of your Kinode.
0 commit comments