jaelis-node 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +193 -81
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,65 +1,88 @@
1
- # @jaelis/node
1
+ # jaelis-node
2
2
 
3
- Official node software for the **JAELIS Blockchain** - run a full node, validator, or bootstrap node on the JAELIS network.
3
+ Official node software for the **JAELIS Blockchain** - the first unified multi-language smart contract platform with cross-chain settlement.
4
4
 
5
- [![npm version](https://badge.fury.io/js/@jaelis%2Fnode.svg)](https://www.npmjs.com/package/@jaelis/node)
5
+ [![npm version](https://badge.fury.io/js/jaelis-node.svg)](https://www.npmjs.com/package/jaelis-node)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
 
8
- ## Features
8
+ ## What is JAELIS?
9
9
 
10
- - **Full Node** - Sync and validate the entire JAELIS blockchain
11
- - **Validator Node** - Participate in PoEC consensus and earn rewards
12
- - **Bootstrap Node** - Help with peer discovery on the network
13
- - **Zero Gas Fees** - LODE-based computational metering
14
- - **Multi-VM Support** - EVM, Solana, WASM, Bitcoin, Move, TON
15
- - **AI-Native** - Built-in MCP server and x402 payment protocol
16
- - **LevelDB Storage** - Fast, persistent blockchain storage
10
+ JAELIS is a next-generation blockchain with a **Universal Virtual Machine** that natively executes smart contracts written in 6 different languages - all on the same chain, with direct cross-contract calls between them. No bridges. No wrapped tokens. No translation layers.
17
11
 
18
- ## Installation
12
+ **One chain. Six languages. Direct interoperability.**
19
13
 
20
- ### Global Installation (Recommended)
14
+ ## Universal VM - Core Innovation
21
15
 
22
- ```bash
23
- npm install -g @jaelis/node
24
- ```
16
+ The JAELIS Universal VM executes contracts from multiple ecosystems natively:
25
17
 
26
- ### Local Installation
18
+ | Language | Ecosystem | Status |
19
+ |----------|-----------|--------|
20
+ | **Solidity** | Ethereum, Polygon, Arbitrum, Base, etc. | Production |
21
+ | **Rust** | Solana, NEAR, Polkadot | Production |
22
+ | **Move** | Aptos, Sui, Movement | Production |
23
+ | **FunC** | TON (Telegram's 900M+ users) | Production |
24
+ | **Cairo** | StarkNet | Production |
25
+ | **Vyper** | Ethereum (Python-like) | Production |
27
26
 
28
- ```bash
29
- npm install @jaelis/node
27
+ ### Cross-Language Contract Calls
28
+
29
+ A Solidity contract can call a Rust contract. A Move module can interact with FunC. All native, all on-chain:
30
+
31
+ ```javascript
32
+ // Solidity contract calling a Rust program
33
+ await jaelis.crossContractCall({
34
+ from: solidityContract,
35
+ to: rustProgram,
36
+ method: 'process_payment',
37
+ args: [amount, recipient]
38
+ });
30
39
  ```
31
40
 
32
- ## Quick Start
41
+ ## Cross-Chain Settlement (30+ Chains)
33
42
 
34
- ### Start a Full Node
43
+ JAELIS nodes run light clients for 30+ external blockchains, enabling trustless state verification:
35
44
 
36
- ```bash
37
- # Start on testnet (default)
38
- jaelis-node start
45
+ - **EVM Chains**: Ethereum, Polygon, Arbitrum, Optimism, Base, BSC, Avalanche, Fantom
46
+ - **Non-EVM**: Solana, Cosmos, NEAR, Polkadot, Cardano, Algorand
47
+ - **Bitcoin L2**: Lightning, Liquid, Stacks
48
+ - **Emerging**: Aptos, Sui, TON, StarkNet, zkSync
39
49
 
40
- # Start on testnet with custom ports
41
- jaelis-node start --rpc-port 8545 --p2p-port 30303
50
+ Read external chain state directly in your JAELIS contracts - no oracles needed.
42
51
 
43
- # Start on mainnet (when available)
44
- jaelis-node start --network mainnet
45
- ```
52
+ ## Features
53
+
54
+ - **Universal VM** - 6 languages, one chain, direct interop
55
+ - **Cross-Chain Settlement** - Read state from 30+ chains trustlessly
56
+ - **Zero Gas Fees** - LODE-based computational metering (users pay $0)
57
+ - **Multi-Chain Wallets** - Receive rewards to ANY chain address
58
+ - **No Staking Required** - JAELIS never holds your funds
59
+ - **AI-Native** - Built-in MCP server and x402 payment protocol
60
+ - **ERC-5792** - Atomic batch transactions
61
+ - **EIP-7702** - Account abstraction (EOA → Smart Account)
62
+ - **Address Safety** - Anti-phishing and poisoning protection
63
+ - **Real P2P** - libp2p networking (same as Ethereum 2.0, IPFS)
64
+ - **Lifetime Node Tracking** - Your contributions are recorded forever
46
65
 
47
- ### Check Node Status
66
+ ## Installation
48
67
 
49
68
  ```bash
50
- jaelis-node status
69
+ npm install -g jaelis-node
51
70
  ```
52
71
 
53
- ### View Connected Peers
72
+ ## Quick Start
54
73
 
55
74
  ```bash
56
- jaelis-node peers
57
- ```
75
+ # Start a node (zero config - auto-connects to testnet)
76
+ # Works without a reward address - add one anytime to start earning!
77
+ jaelis-node start
58
78
 
59
- ### Display Node Info
79
+ # Or start with your reward wallet (use ANY chain address!)
80
+ jaelis-node start --reward-recipient 0xYourEthAddress
81
+ jaelis-node start --reward-recipient 9WzDX...YourSolanaAddress
82
+ jaelis-node start --reward-recipient bc1q...YourBitcoinAddress
60
83
 
61
- ```bash
62
- jaelis-node info
84
+ # Add a reward wallet later (no restart needed for new nodes)
85
+ jaelis-node wallet:set-recipient 0xYourAddress
63
86
  ```
64
87
 
65
88
  ## Commands
@@ -67,11 +90,39 @@ jaelis-node info
67
90
  | Command | Description |
68
91
  |---------|-------------|
69
92
  | `start` | Start a full JAELIS node |
70
- | `validator` | Run as a validator node (PoEC) |
93
+ | `validator` | Run as a validator node (bonus rewards) |
71
94
  | `bootstrap` | Run as a bootstrap/seed node |
72
95
  | `status` | Check local node status |
73
96
  | `peers` | List connected peers |
74
- | `info` | Display node information |
97
+ | `info` | Display node and network information |
98
+
99
+ ## Wallet Commands
100
+
101
+ JAELIS supports **any chain address** for receiving rewards. No staking. No lockups. Your keys, your wallet.
102
+
103
+ ```bash
104
+ # Set your reward wallet (accepts ANY chain format)
105
+ jaelis-node wallet:set-recipient 0x742d35cc6634C0532925a3b844Bc454e4438f44e # EVM
106
+ jaelis-node wallet:set-recipient 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM # Solana
107
+ jaelis-node wallet:set-recipient bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh # Bitcoin
108
+ jaelis-node wallet:set-recipient EQDrLq-X6jKZNHAScgghh0h1iog3StK71zn8dcmrOj0n # TON
109
+
110
+ # List configured wallets
111
+ jaelis-node wallet:list
112
+
113
+ # Add additional wallets
114
+ jaelis-node wallet:add "trading" 0x456...
115
+
116
+ # View node identity
117
+ jaelis-node wallet:identity
118
+ ```
119
+
120
+ **Supported Address Formats:**
121
+ - EVM (Ethereum, Polygon, Arbitrum, Base, Optimism, etc.)
122
+ - Solana (base58)
123
+ - Bitcoin (Legacy: 1..., SegWit: 3..., Native SegWit: bc1...)
124
+ - TON (base64url)
125
+ - Move (Aptos/Sui: 0x + 64 hex chars)
75
126
 
76
127
  ## Start Options
77
128
 
@@ -79,64 +130,119 @@ jaelis-node info
79
130
  jaelis-node start [options]
80
131
 
81
132
  Options:
82
- -n, --network <network> Network: testnet or mainnet (default: testnet)
83
- -r, --rpc-port <port> RPC server port (default: 8545)
84
- -p, --p2p-port <port> P2P network port (default: 30303)
85
- -d, --data-dir <path> Data directory (default: ./jaelis-data)
86
- --rpc-host <host> RPC host (default: 0.0.0.0)
87
- --no-rpc Disable RPC server
88
- --sync-mode <mode> Sync mode: full, light, archive (default: full)
133
+ -n, --network <network> Network: testnet or mainnet (default: testnet)
134
+ -r, --rpc-port <port> RPC server port (default: 8545)
135
+ -p, --p2p-port <port> P2P network port (default: 30303)
136
+ -d, --data-dir <path> Data directory (default: ./jaelis-data)
137
+ --rpc-host <host> RPC host (default: 0.0.0.0)
138
+ --no-rpc Disable RPC server
139
+ --sync-mode <mode> Sync mode: full, light, archive (default: full)
140
+ --reward-recipient <address> Wallet address for node rewards (ANY chain!)
89
141
  ```
90
142
 
143
+ ## RPC Methods
144
+
145
+ Your node exposes standard JSON-RPC plus JAELIS-specific methods:
146
+
147
+ ### Universal VM Methods
148
+ | Method | Description |
149
+ |--------|-------------|
150
+ | `jaelis_getSupportedLanguages` | Returns: `['solidity', 'rust', 'move', 'func', 'cairo', 'vyper']` |
151
+ | `jaelis_deployContract` | Deploy contract in any supported language |
152
+ | `jaelis_executeContract` | Execute contract method |
153
+ | `jaelis_crossContractCall` | Call between contracts of different languages |
154
+
155
+ ### Cross-Chain Settlement Methods
156
+ | Method | Description |
157
+ |--------|-------------|
158
+ | `jaelis_crossChain_getChains` | List all 30+ registered chains |
159
+ | `jaelis_crossChain_getChainInfo` | Get chain metadata (name, RPC, block time) |
160
+ | `jaelis_crossChain_readState` | Read settled external chain state |
161
+ | `jaelis_crossChain_settleState` | Submit proof and settle state |
162
+ | `jaelis_crossChain_getStateDiff` | Compare state across chains |
163
+ | `jaelis_crossChain_getLightClientStatus` | Check light client sync status |
164
+
165
+ ### Wallet Standard Methods (ERC-5792, EIP-7702)
166
+ | Method | Description |
167
+ |--------|-------------|
168
+ | `jaelis_wallet_getCapabilities` | Get wallet capabilities |
169
+ | `jaelis_wallet_sendCalls` | Atomic batch transactions |
170
+ | `jaelis_wallet_getCallsStatus` | Check batch status |
171
+ | `jaelis_wallet_grantPermissions` | Grant session permissions |
172
+ | `jaelis_validateAddressSafety` | Anti-phishing check |
173
+ | `jaelis_checkDustAttacks` | Detect address poisoning |
174
+
175
+ ### Standard Ethereum-Compatible Methods
176
+ | Method | Description |
177
+ |--------|-------------|
178
+ | `eth_blockNumber` | Get latest block number |
179
+ | `eth_getBalance` | Get account balance |
180
+ | `eth_sendTransaction` | Send transaction |
181
+ | `eth_call` | Call contract (read-only) |
182
+ | `eth_getTransactionReceipt` | Get transaction receipt |
183
+
91
184
  ## Programmatic Usage
92
185
 
93
186
  ```javascript
94
- const { JaelisNode, BootstrapNode } = require('@jaelis/node');
187
+ const { JaelisNode, BootstrapNode } = require('jaelis-node');
95
188
 
96
- // Create and start a full node
189
+ // Create and start a node
97
190
  const node = new JaelisNode({
98
191
  network: 'testnet',
99
192
  rpcPort: 8545,
100
193
  p2pPort: 30303,
101
- dataDir: './my-node-data'
194
+ dataDir: './my-node-data',
195
+ rewardRecipient: '0xYourAddress' // Any chain address
102
196
  });
103
197
 
104
198
  await node.start();
105
199
 
106
200
  // Get node status
107
201
  const status = node.getStatus();
108
- console.log(status);
202
+ console.log('Chain ID:', status.chainId); // 4545 (testnet) or 4547 (mainnet)
203
+ console.log('Peers:', status.peerCount);
204
+ console.log('Block:', status.blockNumber);
109
205
 
110
206
  // Listen for events
111
207
  node.on('peer:connect', (peerCount) => {
112
- console.log(`Peers connected: ${peerCount}`);
208
+ console.log(`Connected peers: ${peerCount}`);
113
209
  });
114
210
 
115
- // Stop the node
116
- await node.stop();
117
- ```
118
-
119
- ### Bootstrap Node
120
-
121
- ```javascript
122
- const { BootstrapNode } = require('@jaelis/node');
123
-
124
- const bootstrap = new BootstrapNode({
125
- port: 30305,
126
- network: 'testnet'
211
+ node.on('block:new', (block) => {
212
+ console.log(`New block: ${block.number}`);
127
213
  });
128
214
 
129
- await bootstrap.start();
130
- console.log(`Bootstrap node running, ${bootstrap.getPeerCount()} peers`);
215
+ // Stop the node
216
+ await node.stop();
131
217
  ```
132
218
 
133
219
  ## Network Configuration
134
220
 
135
221
  | Network | Chain ID | RPC URL | Status |
136
222
  |---------|----------|---------|--------|
137
- | Testnet | 4545 | https://rpc.jaelis.io | Active |
223
+ | Testnet | 4545 | https://rpc.jaelis.io | **Active** |
138
224
  | Mainnet | 4547 | https://mainnet.jaelis.io | Coming Soon |
139
225
 
226
+ ## Node Rewards
227
+
228
+ JAELIS rewards node operators based on:
229
+ - **Uptime** - Keep your node running
230
+ - **Transactions Processed** - Help validate transactions
231
+ - **Bandwidth Provided** - Serve data to the network
232
+ - **Validator Mode** - Opt-in for bonus rewards
233
+
234
+ **Reward wallet is optional.** Start your node anytime - add a wallet when you're ready to earn.
235
+
236
+ **No staking required.** JAELIS never holds your funds. Use any wallet from any chain.
237
+
238
+ ```bash
239
+ # Set reward wallet (can do before or after starting node)
240
+ jaelis-node wallet:set-recipient 0xYourAddress
241
+
242
+ # Check your node's contribution stats
243
+ jaelis-node status
244
+ ```
245
+
140
246
  ## System Requirements
141
247
 
142
248
  | Requirement | Minimum | Recommended |
@@ -151,11 +257,11 @@ console.log(`Bootstrap node running, ${bootstrap.getPeerCount()} peers`);
151
257
 
152
258
  ```
153
259
  jaelis-data/
154
- ├── blockchain/ # Block and state data
155
- ├── blocks/ # Block storage (LevelDB)
156
- │ └── state/ # State trie (LevelDB)
260
+ ├── blockchain/ # Block and state data (LevelDB)
261
+ ├── node-registry/ # Node tracking and statistics
262
+ ├── wallet-config/ # Wallet configuration
157
263
  ├── peers/ # Peer database
158
- ├── keys/ # Node keys (if validator)
264
+ ├── keys/ # Node identity keys
159
265
  └── logs/ # Node logs
160
266
  ```
161
267
 
@@ -163,38 +269,44 @@ jaelis-data/
163
269
 
164
270
  | Variable | Description | Default |
165
271
  |----------|-------------|---------|
166
- | `JAELIS_CORE_PATH` | Path to JAELIS core | Auto-detected |
167
- | `JAELIS_DATA_DIR` | Data directory | `./jaelis-data` |
168
272
  | `JAELIS_NETWORK` | Network (testnet/mainnet) | `testnet` |
273
+ | `JAELIS_DATA_DIR` | Data directory | `./jaelis-data` |
169
274
  | `JAELIS_RPC_PORT` | RPC port | `8545` |
170
275
  | `JAELIS_P2P_PORT` | P2P port | `30303` |
276
+ | `JAELIS_REWARD_ADDRESS` | Reward wallet address | - |
171
277
 
172
278
  ## Docker
173
279
 
174
280
  ```bash
175
- # Pull the image
176
- docker pull jaelis/node
177
-
178
281
  # Run a full node
179
282
  docker run -d \
180
283
  --name jaelis-node \
181
284
  -p 8545:8545 \
182
285
  -p 30303:30303 \
183
286
  -v jaelis-data:/data \
287
+ -e JAELIS_REWARD_ADDRESS=0xYourAddress \
184
288
  jaelis/node start --network testnet
185
-
186
- # Check logs
187
- docker logs -f jaelis-node
188
289
  ```
189
290
 
190
- ## Contributing
291
+ ## Technical Highlights
292
+
293
+ ### Patent-Pending Technology
294
+ JAELIS implements three patent-pending systems:
295
+ 1. **Universal VM Architecture** - Multi-language contract execution
296
+ 2. **Cross-Chain Light Client Protocol** - Trustless external state verification
297
+ 3. **LODE Computation Model** - Zero-fee transaction processing
191
298
 
192
- Contributions are welcome! Please see our contributing guidelines.
299
+ ### Security
300
+ - Real libp2p P2P networking (same protocol as Ethereum 2.0, Filecoin, IPFS)
301
+ - Automatic peer discovery and DHT routing
302
+ - Built-in MEV protection
303
+ - Address poisoning detection
304
+ - No trusted setup for privacy features
193
305
 
194
306
  ## Links
195
307
 
308
+ - SDK: [npmjs.com/package/jaelis.js](https://www.npmjs.com/package/jaelis.js)
196
309
  - Website: [jaelis.io](https://jaelis.io)
197
- - SDK: [npm/jaelis.js](https://www.npmjs.com/package/jaelis.js)
198
310
  - Documentation: [docs.jaelis.io](https://docs.jaelis.io)
199
311
  - GitHub: [github.com/jaelis-foundation](https://github.com/jaelis-foundation)
200
312
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jaelis-node",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "Official JAELIS Blockchain Node - Run a full node, validator, or bootstrap node with Cross-Chain Settlement (30+ chains!), ERC-5792 wallet capabilities, EIP-7702 account abstraction",
5
5
  "main": "lib/index.js",
6
6
  "bin": {