nectar/README.md

71 lines
2.5 KiB
Markdown
Raw Normal View History

2023-11-02 00:20:52 +03:00
Last updated: 11/01/23
2023-10-02 23:02:53 +03:00
## Setup
### Building components
```bash
# Clone the repo.
2023-10-03 18:45:46 +03:00
git clone git@github.com:uqbar-dao/uqbar.git
2023-10-02 23:02:53 +03:00
2023-10-17 00:53:24 +03:00
2023-10-02 23:02:53 +03:00
# Get some stuff so we can build wasm.
2023-10-17 00:53:42 +03:00
cd uqbar
2023-10-02 23:02:53 +03:00
cargo install wasm-tools
rustup install nightly
rustup target add wasm32-wasi
rustup target add wasm32-wasi --toolchain nightly
cargo install cargo-wasi
cargo install --git https://github.com/bytecodealliance/cargo-component --locked cargo-component
# Initialize submodules, in particular the register app
git submodule update --init --recursive
# Build the register app
cd src/register && ./build_all.sh && cd ../..
2023-10-02 23:02:53 +03:00
# Build the runtime, along with a number of booted-at-startup WASM modules including terminal and key_value
# OPTIONAL: --release flag
2023-10-03 21:25:46 +03:00
cargo +nightly build --release
2023-10-02 23:02:53 +03:00
```
### Boot
If you do not receive QNS updates in terminal, it's a sign that the default public-access RPC endpoint is rate-limiting or blocking you. Get an eth-sepolia-rpc API key and pass that as an argument. You can get one for free at `alchemy.com`.
Also, make sure not to use the same home directory for two nodes at once! You can use any name for the home directory.
```bash
cargo +nightly run --release -- --home home --rpc wss://eth-sepolia.g.alchemy.com/v2/<your-api-key>
2023-10-02 23:02:53 +03:00
```
On boot you will be prompted to navigate to `localhost:8080`. Make sure your eth wallet is connected to the Sepolia test network. Login should be very straightforward, just submit the transactions and follow the flow.
## Terminal syntax
- CTRL+C or CTRL+D to shutdown node
- CTRL+V to toggle verbose mode, which is on by default
- CTRL+J to toggle debug mode
- CTRL+S to step through events in debug mode
- CTRL+A to jump to beginning of input
- CTRL+E to jump to end of input
- UpArrow/DownArrow or CTRL+P/CTRL+N to move up and down through command history
- CTRL+R to search history, CTRL+R again to toggle through search results, CTRL+G to cancel search
- `!message <name> <app> <json>`: send a card with a JSON value to another node or yourself. <name> can be `our`, which will be interpreted as our node's username.
- `!hi <name> <string>`: send a text message to another node's command line.
- `<name>` is either the name of a node or `our`, which will fill in the present node name
- more to come
## Example usage
2023-11-01 23:37:31 +03:00
Download and install an app:
```
!message our main:app_store:uqbar {"Download": {"package": {"package_name": "<pkg>", "publisher_node": "<node>"}, "install_from": "<node>"}}
!message our main:app_store:uqbar {"Install": {"package_name": "<pkg>", "publisher_node": "<node>"}}
```