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.
- package/README.md +193 -81
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,65 +1,88 @@
|
|
|
1
|
-
#
|
|
1
|
+
# jaelis-node
|
|
2
2
|
|
|
3
|
-
Official node software for the **JAELIS Blockchain** -
|
|
3
|
+
Official node software for the **JAELIS Blockchain** - the first unified multi-language smart contract platform with cross-chain settlement.
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/jaelis-node)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## What is JAELIS?
|
|
9
9
|
|
|
10
|
-
- **
|
|
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
|
-
|
|
12
|
+
**One chain. Six languages. Direct interoperability.**
|
|
19
13
|
|
|
20
|
-
|
|
14
|
+
## Universal VM - Core Innovation
|
|
21
15
|
|
|
22
|
-
|
|
23
|
-
npm install -g @jaelis/node
|
|
24
|
-
```
|
|
16
|
+
The JAELIS Universal VM executes contracts from multiple ecosystems natively:
|
|
25
17
|
|
|
26
|
-
|
|
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
|
-
|
|
29
|
-
|
|
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
|
-
##
|
|
41
|
+
## Cross-Chain Settlement (30+ Chains)
|
|
33
42
|
|
|
34
|
-
|
|
43
|
+
JAELIS nodes run light clients for 30+ external blockchains, enabling trustless state verification:
|
|
35
44
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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
|
-
|
|
66
|
+
## Installation
|
|
48
67
|
|
|
49
68
|
```bash
|
|
50
|
-
jaelis-node
|
|
69
|
+
npm install -g jaelis-node
|
|
51
70
|
```
|
|
52
71
|
|
|
53
|
-
|
|
72
|
+
## Quick Start
|
|
54
73
|
|
|
55
74
|
```bash
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
62
|
-
jaelis-node
|
|
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 (
|
|
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>
|
|
83
|
-
-r, --rpc-port <port>
|
|
84
|
-
-p, --p2p-port <port>
|
|
85
|
-
-d, --data-dir <path>
|
|
86
|
-
--rpc-host <host>
|
|
87
|
-
--no-rpc
|
|
88
|
-
--sync-mode <mode>
|
|
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('
|
|
187
|
+
const { JaelisNode, BootstrapNode } = require('jaelis-node');
|
|
95
188
|
|
|
96
|
-
// Create and start a
|
|
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(`
|
|
208
|
+
console.log(`Connected peers: ${peerCount}`);
|
|
113
209
|
});
|
|
114
210
|
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
130
|
-
|
|
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
|
-
|
|
156
|
-
|
|
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
|
|
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
|
-
##
|
|
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
|
-
|
|
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.
|
|
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": {
|