User Guide

Installation & Start

Install VS1984

# install vs1984 in ubuntu 24.04
 sudo dpkg -i vs1984.deb

 # uninstall vs1984 in ubuntu 24.04
 sudo apt purge vs1984

 # run in the terminal
 vs1984

Install and Start the Background Service

Install the VS1984 background service

# install vs1984 service in ubuntu 24.04

 systemctl --user daemon-reload

 systemctl --user enable --now vs1984d.service

Show Current Version

Display the running version of VS1984:

# input:
 cmd version
 # output:
 SDK: xbc version: 0.9.25 build: 20251127025427

Exit VS1984 Properly

Although VS1984 is a command-line tool, it must be exited gracefully through its own command:

cmd exit

Files & Directory Overview

  • After installation:
# installation path: /usr/local/vs1984
 ├── cnf             # configuration directory <must keep>
 ├── .dat            # local data directory
 ├── .DFT_Exp_Table  # steganography connection image cache
 ├── .id             # node id file <must keep>
 ├── .bt             # node bt seed files
 ├── .ai             # node ai vector storage
 ├── .cache          # Merkle-Patricia tree cache
 ├── .scbc           # SCBC blockchain storage
 ├── tasks           # ongoing task cache
 └── .tmp            # temporary cache files

Command-line Startup Options

  • -p
# specify <port> to start the service
  vs1984 -p <port>
 # if -p 0 is used, VS1984 will randomly pick a port between 15000 and 65000
  • -s
# connect to a node
 vs1984 -s <node ip>:<port>
  • -i
# connect via node id
 vs1984 -i <node id>
  • -a
# connect using an image with connection info
 vs1984 -a <node connect info image>
  • -u
# automatically enable router UPnP
 vs1984 -u
  • -c
# load custom configuration file
 vs1984 -c <config_file_path>
  • example
# Example:
 vs1984 -u -p 36984 -s :36983 -i A7HNzh7r2b6cKwXVdNShNLoKk+arm06pBT78TY6SyHK1
 # run vs1984, port 36984, connect to node which port is 36983,id is A7HNzh7r2b6cKwXVdNShNLoKk+arm06pBT78TY6SyHK1

Configuration

A default config file exists under the cnf directory (config.xbc). You may modify VS1984’s behavior there or use -c to load a custom config.

# Example:
 {
   "neighbors": 10,
   "share": {"max": 20},
   "whitelist": ["node A id", "node B id"],
   "tls": {"cert": "./cnf/self.crt", "pkey": "./cnf/self.key", "pass": "111"},
   "app": "-u -p 0 -a ./will_connect_img",
   "routes": "./cnf/routes.json",
   "guard": "static",
   "env": "MTg1MzU3OTk3MUF1aDdzQmVweFJ4ZWdWMzFYUnlzNlV0ekttUWxGZ0xselpadXloN3Mvc1E0TUVVQ0lRQ2NEM0ZNZFVHclZWVjZ3NmhDdUlOZjFHMUNkSHpEMFpjU1hxWkwwbVlDWlFJZ1ZLN1FKN2t0VjlhdFNTTkhVRjNDZnJVRlVzazRBam54V0VYdUg1K2pBcmc9"
 }
 # neighbors           max neighbor connections allowed
 # share: {"max": 20}  max shared routing info count
 # whitelist           node whitelist
 # blacklist           node blacklist
 # tls                 certificate paths
 # app                 startup parameters for client
 # routes              bootstrap node list
 # guard               keep guard id & cert unchanged if static
 # env                 software env param

Start the VS1984 BT Background Service

# Add the following to the VS1984 configuration:
 "bt": {"startup": true, "config": "vshome/cnf/bt.conf", "bt_path" : "."}
 # config: BT configuration file
 # bt_path: The VS1984 BT executable file

Start the VS1984 RAG Background Service

# Add the following to the VS1984 configuration:
 "rag": {"provider": true, "model": "models/model.gguf", "rag_path" : "."}
 # provider: Starts as the rag content service
 # model: Local LLM model path
 # rag_path: The VS1984 rag executable file

Accessing the VS1984 background service using the xmd tool

# Add the following to the VS1984 configuration:

 "daemon": {"startup": true, "token": <user_token>},

 # Start the xmd tool locally and connect to the local VS1984 service

 xmd -t <user_token>

Connect to Another Node

cmd connect <node_ip>:<node_port> <node_id>

Disconnect from a Node

cmd disconnect <node_id>

List Routing Table

# list all routing entries
 cmd ids all
 # list neighbor routes
 cmd ids
 # list non-neighbor hints
 cmd ids hint

View Node Details

cmd id <node_id>

Set Node Nickname

cmd id set <node_id> <nickname>

Delete Node Nickname

cmd id del <node_id>

Create Your Own Certificate

This command generates an anti-MITM certificate using a local proof-of-work computation. This usually takes 1–2 minutes.

cmd cert <cert_private_key_pass>

View Your Own Node Info

cmd self

Export Your Connection Info into an Image

Image resolution must be at least 1024 x 1024.

cmd img <image_path>

Connect to a Node via Image

cmd connect <node_connection_image>

Send P2P Encrypted Message (to any node)

cmd chat <node id> <message>

Broadcast Message to Neighbors

cmd broadcast <message>

Show VS1984 Working Directory

cmd work

Add Local File

cmd add <local_file>
 # ex: cmd add ll.jpg
 # File copied to local node successfully!

List Local Files

cmd ls file
 # NODE: <self node id>
 # FILE: ll.jpg

Generate Download Link for a File

Create a download link for node A:

cmd mk <self node id> <file name> <node A id>
 # the resource url is rsx://QXduK01XanBy...

Download File via Link

Download a file shared specifically to you. Otherwise decryption will fail.

cmd get <rsx url>

Anonymous On-chain Publishing

Publish data anonymously to the blockchain:

cmd kk '<msg>'
 # note: wrap with '', SDK callers do not need ''
 # ex: cmd kk '{"topic":"wonder woman","url":"magnet:?xt=urn:btih:JMZCWVEMYLX5LBXEP3VPHF7NN4KNG3TG","tokens":"100000","type":"video","intro":"Diana of Themyscira, also known by her superhero title Wonder Woman","tag":"superhero"}'

Transfer Tokens

(Future versions will integrate stablecoin vault and bridge services)

cmd tr <to node id> <amount>

Withdraw

(Depends on stablecoin vault and bridge services)

coming soon

View Ledger Balance

# view your own balance
 cmd bl self
 # view another node's balance
 cmd bl <node id>

View Current Tasks

# list tasks
 cmd task list
 # sync tasks
 cmd task sync
 # clear all tasks
 cmd task clean

BT Commands

Operate BT functions using these commands

# Add a file to seed

 cmd bt seed <file_path>

 # Download a BT file via magnet

 cmd bt magnet <magnet_url>

 # Check BT download status

 cmd bt status <infohash>

Encrypting/Decrypting a String

Use this command to encrypt/decrypt a string.

# Encrypt a string

 cmd secret encrypt <node_id> <to_secret_string>

 # Decrypt a string

 cmd secret decrypt <node_id> <from_secret_string>

File Encryption/Decryption

Use this command to encrypt/decrypt a file.

# Encrypt a file using a key as the encryption seed

 cmd file encrypt <key> <file_path>

 # Decrypt a file

 cmd file decrypt <key> <file_path>

View Single On-chain Message

cmd mid <mid>

Voice Call Between Neighbors

# Node A requests voice call with Node B
 node A : cmd call req <node B id>
 # Node B accepts the request
 node B : cmd call ans <node A id>
 # WebRTC connection auto-negotiated

 # end the call
 node A : cmd call end <node B id>
 node B : cmd call end <node A id>

View a Node’s On-chain Information

# view your own info
 cmd bc self
 # view info of a node’s real id
 cmd bc <node real id>

Redownload a Block

# cmd block <block number>

View Blacklist

# cmd blacklist

Regenerate Guard ID and delete TLS Certificate

This command regenerates the Guard ID and TLS certificate. Before doing so, ensure that the "guard" option in the configuration file is not configured as "static".

# cmd new id