jaelis-node 1.10.0 → 2.1.0
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 +156 -439
- package/bin/jaelis-node.js +83 -504
- package/lib/index.js +31 -2840
- package/lib/node.js +309 -0
- package/lib/rpc.js +315 -0
- package/lib/storage.js +198 -0
- package/lib/sync.js +366 -0
- package/package.json +19 -53
- package/config/default.json +0 -74
- package/config/mainnet.json +0 -30
- package/config/testnet.json +0 -26
- package/lib/JAELIS-VM/lib/adapters/evm-adapter.js +0 -454
- package/lib/JAELIS-VM/lib/adapters/index.js +0 -411
- package/lib/JAELIS-VM/lib/adapters/svm-adapter.js +0 -457
- package/lib/JAELIS-VM/lib/compiler/jir-compiler.js +0 -1097
- package/lib/JAELIS-VM/lib/execution/engine.js +0 -1183
- package/lib/JAELIS-VM/lib/index.js +0 -440
- package/lib/JAELIS-VM/lib/integration/jaelis-integration.js +0 -543
- package/lib/JAELIS-VM/lib/serialization/serializer.js +0 -819
- package/lib/JAELIS-VM/lib/state/state-manager.js +0 -1116
- package/lib/JAELIS-VM/lib/translator/bytecode-translator.js +0 -1222
- package/lib/JAELIS-VM/lib/unified/cross-chain-deploy.js +0 -1678
- package/lib/JAELIS-VM/lib/unified/cross-chain-state.js +0 -836
- package/lib/JAELIS-VM/lib/unified/dynamic-contracts.js +0 -1127
- package/lib/JAELIS-VM/lib/unified/index.js +0 -456
- package/lib/JAELIS-VM/lib/unified/jaelis-abi.js +0 -1150
- package/lib/JAELIS-VM/lib/unified/unified-compiler.js +0 -1350
- package/lib/JAELIS-VM/node_modules/.bin/download-cbor-prebuilds +0 -12
- package/lib/JAELIS-VM/node_modules/.bin/download-cbor-prebuilds.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/.bin/download-cbor-prebuilds.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/.bin/download-msgpackr-prebuilds +0 -12
- package/lib/JAELIS-VM/node_modules/.bin/download-msgpackr-prebuilds.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/.bin/download-msgpackr-prebuilds.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages +0 -12
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages-optional +0 -12
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages-optional.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages-optional.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages-test +0 -12
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages-test.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages-test.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/.bin/node-gyp-build-optional-packages.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/.package-lock.json +0 -127
- package/lib/JAELIS-VM/node_modules/@cbor-extract/cbor-extract-win32-x64/README.md +0 -1
- package/lib/JAELIS-VM/node_modules/@cbor-extract/cbor-extract-win32-x64/index.js +0 -0
- package/lib/JAELIS-VM/node_modules/@cbor-extract/cbor-extract-win32-x64/node.abi115.node +0 -0
- package/lib/JAELIS-VM/node_modules/@cbor-extract/cbor-extract-win32-x64/node.napi.node +0 -0
- package/lib/JAELIS-VM/node_modules/@cbor-extract/cbor-extract-win32-x64/package.json +0 -17
- package/lib/JAELIS-VM/node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/README.md +0 -1
- package/lib/JAELIS-VM/node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/index.js +0 -0
- package/lib/JAELIS-VM/node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/node.abi115.node +0 -0
- package/lib/JAELIS-VM/node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/node.napi.node +0 -0
- package/lib/JAELIS-VM/node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/package.json +0 -17
- package/lib/JAELIS-VM/node_modules/cbor-extract/LICENSE +0 -21
- package/lib/JAELIS-VM/node_modules/cbor-extract/README.md +0 -5
- package/lib/JAELIS-VM/node_modules/cbor-extract/bin/download-prebuilds.js +0 -11
- package/lib/JAELIS-VM/node_modules/cbor-extract/binding.gyp +0 -60
- package/lib/JAELIS-VM/node_modules/cbor-extract/index.js +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-extract/package.json +0 -50
- package/lib/JAELIS-VM/node_modules/cbor-extract/src/extract.cpp +0 -198
- package/lib/JAELIS-VM/node_modules/cbor-x/LICENSE +0 -21
- package/lib/JAELIS-VM/node_modules/cbor-x/README.md +0 -380
- package/lib/JAELIS-VM/node_modules/cbor-x/SECURITY.md +0 -11
- package/lib/JAELIS-VM/node_modules/cbor-x/benchmark.md +0 -73
- package/lib/JAELIS-VM/node_modules/cbor-x/browser.js +0 -11
- package/lib/JAELIS-VM/node_modules/cbor-x/decode.d.ts +0 -2
- package/lib/JAELIS-VM/node_modules/cbor-x/decode.js +0 -1300
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/decode-no-eval.cjs +0 -1244
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/decode-no-eval.cjs.map +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index-no-eval.cjs +0 -2509
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index-no-eval.cjs.map +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index-no-eval.min.js +0 -2
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index-no-eval.min.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index.js +0 -2508
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index.min.js +0 -2
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/index.min.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/node.cjs +0 -2629
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/node.cjs.map +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/test.js +0 -3343
- package/lib/JAELIS-VM/node_modules/cbor-x/dist/test.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/encode.d.ts +0 -1
- package/lib/JAELIS-VM/node_modules/cbor-x/encode.js +0 -1231
- package/lib/JAELIS-VM/node_modules/cbor-x/index.d.ts +0 -79
- package/lib/JAELIS-VM/node_modules/cbor-x/index.js +0 -3
- package/lib/JAELIS-VM/node_modules/cbor-x/iterators.js +0 -85
- package/lib/JAELIS-VM/node_modules/cbor-x/node-index.js +0 -24
- package/lib/JAELIS-VM/node_modules/cbor-x/package.json +0 -94
- package/lib/JAELIS-VM/node_modules/cbor-x/rollup.config.js +0 -88
- package/lib/JAELIS-VM/node_modules/cbor-x/stream.js +0 -61
- package/lib/JAELIS-VM/node_modules/cbor-x/webpack.config.js +0 -19
- package/lib/JAELIS-VM/node_modules/detect-libc/LICENSE +0 -201
- package/lib/JAELIS-VM/node_modules/detect-libc/README.md +0 -163
- package/lib/JAELIS-VM/node_modules/detect-libc/index.d.ts +0 -14
- package/lib/JAELIS-VM/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/lib/JAELIS-VM/node_modules/detect-libc/lib/elf.js +0 -39
- package/lib/JAELIS-VM/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/lib/JAELIS-VM/node_modules/detect-libc/lib/process.js +0 -24
- package/lib/JAELIS-VM/node_modules/detect-libc/package.json +0 -44
- package/lib/JAELIS-VM/node_modules/msgpackr/LICENSE +0 -21
- package/lib/JAELIS-VM/node_modules/msgpackr/README.md +0 -372
- package/lib/JAELIS-VM/node_modules/msgpackr/SECURITY.md +0 -11
- package/lib/JAELIS-VM/node_modules/msgpackr/benchmark.md +0 -67
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index-no-eval.cjs +0 -2407
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index-no-eval.cjs.map +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index-no-eval.min.js +0 -2
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index-no-eval.min.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index.js +0 -2406
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index.min.js +0 -2
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/index.min.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/node.cjs +0 -3320
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/node.cjs.map +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/test.js +0 -4540
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/test.js.map +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/unpack-no-eval.cjs +0 -1250
- package/lib/JAELIS-VM/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/index.d.cts +0 -91
- package/lib/JAELIS-VM/node_modules/msgpackr/index.d.ts +0 -91
- package/lib/JAELIS-VM/node_modules/msgpackr/index.js +0 -5
- package/lib/JAELIS-VM/node_modules/msgpackr/iterators.js +0 -87
- package/lib/JAELIS-VM/node_modules/msgpackr/node-index.js +0 -25
- package/lib/JAELIS-VM/node_modules/msgpackr/pack.d.cts +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/pack.d.ts +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr/pack.js +0 -1141
- package/lib/JAELIS-VM/node_modules/msgpackr/package.json +0 -104
- package/lib/JAELIS-VM/node_modules/msgpackr/rollup.config.js +0 -88
- package/lib/JAELIS-VM/node_modules/msgpackr/stream.js +0 -57
- package/lib/JAELIS-VM/node_modules/msgpackr/struct.js +0 -815
- package/lib/JAELIS-VM/node_modules/msgpackr/test-worker.js +0 -3
- package/lib/JAELIS-VM/node_modules/msgpackr/unpack.d.cts +0 -2
- package/lib/JAELIS-VM/node_modules/msgpackr/unpack.d.ts +0 -2
- package/lib/JAELIS-VM/node_modules/msgpackr/unpack.js +0 -1221
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/LICENSE +0 -21
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/README.md +0 -5
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/bin/download-prebuilds.js +0 -13
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/binding.gyp +0 -63
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/index.js +0 -1
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages +0 -12
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages-optional +0 -12
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages-optional.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages-optional.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages-test +0 -12
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages-test.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages-test.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages.cmd +0 -17
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/.bin/node-gyp-build-optional-packages.ps1 +0 -28
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/LICENSE +0 -21
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/README.md +0 -58
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/bin.js +0 -82
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/build-test.js +0 -19
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/index.js +0 -6
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/node-gyp-build.js +0 -236
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/optional.js +0 -7
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages/package.json +0 -32
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/package.json +0 -50
- package/lib/JAELIS-VM/node_modules/msgpackr-extract/src/extract.cpp +0 -274
- package/lib/JAELIS-VM/node_modules/node-gyp-build-optional-packages/LICENSE +0 -21
- package/lib/JAELIS-VM/node_modules/node-gyp-build-optional-packages/README.md +0 -58
- package/lib/JAELIS-VM/node_modules/node-gyp-build-optional-packages/bin.js +0 -77
- package/lib/JAELIS-VM/node_modules/node-gyp-build-optional-packages/build-test.js +0 -19
- package/lib/JAELIS-VM/node_modules/node-gyp-build-optional-packages/index.js +0 -224
- package/lib/JAELIS-VM/node_modules/node-gyp-build-optional-packages/optional.js +0 -7
- package/lib/JAELIS-VM/node_modules/node-gyp-build-optional-packages/package.json +0 -32
- package/lib/JAELIS-VM/package-lock.json +0 -284
- package/lib/JAELIS-VM/package.json +0 -38
- package/lib/JAELIS-VM/test/comprehensive.test.js +0 -267
- package/lib/JAELIS-VM/test/cross-chain-test.js +0 -470
- package/lib/JAELIS-VM/test/unified-vm-test.js +0 -459
- package/lib/JAELIS-VM/test/unified.test.js +0 -166
- package/lib/JAELIS-VM/test/vm.test.js +0 -599
- package/lib/settlement-server.js +0 -999
- package/lib/vm/index.js +0 -397
package/README.md
CHANGED
|
@@ -1,533 +1,250 @@
|
|
|
1
1
|
# jaelis-node
|
|
2
2
|
|
|
3
|
-
Official node software for the **JAELIS Blockchain**
|
|
3
|
+
Official external node software for the **JAELIS Blockchain** network. Run your own node to sync with the network, contribute to decentralization, and expose a local RPC endpoint for your dApps.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/jaelis-node)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
-
## What is
|
|
8
|
+
## What is This?
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
`jaelis-node` is a **lightweight external node** that:
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
- Connects to the JAELIS network via WebSocket
|
|
13
|
+
- Syncs and stores blocks locally (LevelDB)
|
|
14
|
+
- Exposes a local JSON-RPC server for your dApps
|
|
15
|
+
- Relays transactions to the network
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
This is similar to running `geth --syncmode light` for Ethereum.
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
## AI Agent Quick Start
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
Get a named node running in 2 commands:
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// Deploy unified bundle - ALL languages compile to ONE bytecode!
|
|
24
|
-
const result = await jaelis.deployUnified({
|
|
25
|
-
from: '0x...',
|
|
26
|
-
sources: [
|
|
27
|
-
{ code: solidityCode, language: 'solidity', name: 'Token' },
|
|
28
|
-
{ code: rustCode, language: 'rust', name: 'DeFi' },
|
|
29
|
-
{ code: moveCode, language: 'move', name: 'NFT' }
|
|
30
|
-
]
|
|
31
|
-
});
|
|
32
|
-
// ALL contracts share memory and can call each other DIRECTLY!
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Option 2: Multi-VM (Native Compatibility)
|
|
36
|
-
|
|
37
|
-
Deploy to **native VMs** for exact compatibility with original chain behavior:
|
|
38
|
-
|
|
39
|
-
```javascript
|
|
40
|
-
await jaelis.deploySolanaProgram({ bytecode, programId, owner }); // → SVM
|
|
41
|
-
await jaelis.deployMoveModule({ bytecode, moduleName, owner }); // → MoveVM
|
|
42
|
-
await jaelis.deployTonContract({ code, data, owner }); // → TVM
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Language Support Matrix
|
|
46
|
-
|
|
47
|
-
| Language | Ecosystem | Status |
|
|
48
|
-
|----------|-----------|--------|
|
|
49
|
-
| **Solidity** | Ethereum, Polygon, Arbitrum, Base, etc. | Production |
|
|
50
|
-
| **Rust** | Solana, NEAR, Polkadot | Production |
|
|
51
|
-
| **Move** | Aptos, Sui, Movement | Production |
|
|
52
|
-
| **FunC** | TON (Telegram's 900M+ users) | Production |
|
|
53
|
-
| **Cairo** | StarkNet | Production |
|
|
54
|
-
| **Vyper** | Ethereum (Python-like) | Production |
|
|
55
|
-
|
|
56
|
-
### Cross-Language Contract Calls (NO BRIDGES!)
|
|
57
|
-
|
|
58
|
-
```javascript
|
|
59
|
-
// Solidity → Rust call - DIRECT, no bridges needed!
|
|
60
|
-
await jaelis.crossContractCall({
|
|
61
|
-
from: solidityContract,
|
|
62
|
-
to: rustProgram,
|
|
63
|
-
method: 'process_payment',
|
|
64
|
-
args: [amount, recipient]
|
|
65
|
-
});
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g jaelis-node
|
|
25
|
+
jaelis-node --name "MY-AGENT" --network testnet
|
|
66
26
|
```
|
|
67
27
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
JAELIS nodes run light clients for 30+ external blockchains, enabling trustless state verification:
|
|
71
|
-
|
|
72
|
-
- **EVM Chains**: Ethereum, Polygon, Arbitrum, Optimism, Base, BSC, Avalanche, Fantom
|
|
73
|
-
- **Non-EVM**: Solana, Cosmos, NEAR, Polkadot, Cardano, Algorand
|
|
74
|
-
- **Bitcoin L2**: Lightning, Liquid, Stacks
|
|
75
|
-
- **Emerging**: Aptos, Sui, TON, StarkNet, zkSync
|
|
28
|
+
Your agent node will sync with the JAELIS testnet, expose a local RPC at `http://localhost:8545`, and persist its name across restarts.
|
|
76
29
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## Features
|
|
80
|
-
|
|
81
|
-
- **Universal VM** - 6 languages, one chain, direct interop
|
|
82
|
-
- **Cross-Chain Settlement** - Read state from 30+ chains trustlessly
|
|
83
|
-
- **Zero Gas Fees** - LODE-based computational metering (users pay $0)
|
|
84
|
-
- **Multi-Chain Wallets** - Receive rewards to ANY chain address
|
|
85
|
-
- **No Staking Required** - JAELIS never holds your funds
|
|
86
|
-
- **AI-Native** - Built-in MCP server and x402 payment protocol
|
|
87
|
-
- **ERC-5792** - Atomic batch transactions
|
|
88
|
-
- **EIP-7702** - Account abstraction (EOA → Smart Account)
|
|
89
|
-
- **Address Safety** - Anti-phishing and poisoning protection
|
|
90
|
-
- **Real P2P** - libp2p networking (same as Ethereum 2.0, IPFS)
|
|
91
|
-
- **Lifetime Node Tracking** - Your contributions are recorded forever
|
|
30
|
+
## Quick Start
|
|
92
31
|
|
|
93
|
-
|
|
32
|
+
### Install Globally
|
|
94
33
|
|
|
95
34
|
```bash
|
|
96
35
|
npm install -g jaelis-node
|
|
97
36
|
```
|
|
98
37
|
|
|
99
|
-
|
|
38
|
+
### Run the Node
|
|
100
39
|
|
|
101
40
|
```bash
|
|
102
|
-
# Start
|
|
103
|
-
|
|
104
|
-
jaelis-node start
|
|
41
|
+
# Start on testnet (default)
|
|
42
|
+
jaelis-node
|
|
105
43
|
|
|
106
|
-
#
|
|
107
|
-
jaelis-node
|
|
108
|
-
jaelis-node start --reward-recipient 9WzDX...YourSolanaAddress
|
|
109
|
-
jaelis-node start --reward-recipient bc1q...YourBitcoinAddress
|
|
44
|
+
# Start on mainnet
|
|
45
|
+
jaelis-node --network mainnet
|
|
110
46
|
|
|
111
|
-
#
|
|
112
|
-
jaelis-node
|
|
113
|
-
```
|
|
47
|
+
# Name your node (persists across restarts)
|
|
48
|
+
jaelis-node --name MARBIT
|
|
114
49
|
|
|
115
|
-
|
|
50
|
+
# Custom RPC port
|
|
51
|
+
jaelis-node --port 8546
|
|
116
52
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
| `start` | Start a full JAELIS node |
|
|
120
|
-
| `validator` | Run as a validator node (bonus rewards) |
|
|
121
|
-
| `bootstrap` | Run as a bootstrap/seed node |
|
|
122
|
-
| `status` | Check local node status |
|
|
123
|
-
| `peers` | List connected peers |
|
|
124
|
-
| `info` | Display node and network information |
|
|
125
|
-
|
|
126
|
-
## Wallet Commands
|
|
127
|
-
|
|
128
|
-
JAELIS supports **any chain address** for receiving rewards. No staking. No lockups. Your keys, your wallet.
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
# Set your reward wallet (accepts ANY chain format)
|
|
132
|
-
jaelis-node wallet:set-recipient 0x742d35cc6634C0532925a3b844Bc454e4438f44e # EVM
|
|
133
|
-
jaelis-node wallet:set-recipient 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM # Solana
|
|
134
|
-
jaelis-node wallet:set-recipient bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh # Bitcoin
|
|
135
|
-
jaelis-node wallet:set-recipient EQDrLq-X6jKZNHAScgghh0h1iog3StK71zn8dcmrOj0n # TON
|
|
136
|
-
|
|
137
|
-
# List configured wallets
|
|
138
|
-
jaelis-node wallet:list
|
|
139
|
-
|
|
140
|
-
# Add additional wallets
|
|
141
|
-
jaelis-node wallet:add "trading" 0x456...
|
|
142
|
-
|
|
143
|
-
# View node identity
|
|
144
|
-
jaelis-node wallet:identity
|
|
53
|
+
# Custom data directory
|
|
54
|
+
jaelis-node --data-dir ./my-jaelis-data
|
|
145
55
|
```
|
|
146
56
|
|
|
147
|
-
|
|
148
|
-
- EVM (Ethereum, Polygon, Arbitrum, Base, Optimism, etc.)
|
|
149
|
-
- Solana (base58)
|
|
150
|
-
- Bitcoin (Legacy: 1..., SegWit: 3..., Native SegWit: bc1...)
|
|
151
|
-
- TON (base64url)
|
|
152
|
-
- Move (Aptos/Sui: 0x + 64 hex chars)
|
|
57
|
+
### Use with Your dApp
|
|
153
58
|
|
|
154
|
-
|
|
59
|
+
Once the node is running, connect your dApp to `http://localhost:8545`:
|
|
155
60
|
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
Options:
|
|
160
|
-
-n, --network <network> Network: testnet or mainnet (default: testnet)
|
|
161
|
-
-r, --rpc-port <port> RPC server port (default: 8545)
|
|
162
|
-
-p, --p2p-port <port> P2P network port (default: 30303)
|
|
163
|
-
-d, --data-dir <path> Data directory (default: ./jaelis-data)
|
|
164
|
-
--rpc-host <host> RPC host (default: 0.0.0.0)
|
|
165
|
-
--no-rpc Disable RPC server
|
|
166
|
-
--sync-mode <mode> Sync mode: full, light, archive (default: full)
|
|
167
|
-
--reward-recipient <address> Wallet address for node rewards (ANY chain!)
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
## Block Sync & Node Status
|
|
61
|
+
```javascript
|
|
62
|
+
const Jaelis = require('jaelis.js');
|
|
171
63
|
|
|
172
|
-
|
|
64
|
+
// Connect to your local node
|
|
65
|
+
const jaelis = new Jaelis.Provider('http://localhost:8545');
|
|
173
66
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
[SYNC] Local height: 25/139
|
|
178
|
-
[SYNC] Syncing 25 blocks (26 → 50)
|
|
179
|
-
...
|
|
180
|
-
[SYNC] Local height: 139/139
|
|
181
|
-
[SYNC] WebSocket connected! Subscribing to newHeads...
|
|
182
|
-
[SYNC] ✓ Subscribed to newHeads (id: 0x1)
|
|
183
|
-
[SYNC] Listening for new blocks via WebSocket...
|
|
67
|
+
// Now all RPC calls go through your local node
|
|
68
|
+
const blockNumber = await jaelis.getBlockNumber();
|
|
69
|
+
const balance = await jaelis.getBalance('jae1qwertyuiop...'); // JAELIS native address
|
|
184
70
|
```
|
|
185
71
|
|
|
186
|
-
|
|
187
|
-
- **Smart batching** - 25 blocks during initial sync, reduces as you get closer
|
|
188
|
-
- **WebSocket subscriptions** - Real-time block notifications (no polling!)
|
|
189
|
-
- **Automatic fallback** - Falls back to HTTP polling if WebSocket unavailable
|
|
190
|
-
- **Auto-update checker** - Notifies when a new version is available on npm
|
|
72
|
+
## Architecture
|
|
191
73
|
|
|
192
|
-
**Update Notifications:**
|
|
193
|
-
```
|
|
194
|
-
╔════════════════════════════════════════════════════════════════╗
|
|
195
|
-
║ 📦 UPDATE AVAILABLE ║
|
|
196
|
-
╠════════════════════════════════════════════════════════════════╣
|
|
197
|
-
║ Current: v1.9.0 → Latest: v1.10.0 ║
|
|
198
|
-
║ ║
|
|
199
|
-
║ Run: npm update -g jaelis-node ║
|
|
200
|
-
║ Or: npx jaelis-node@latest start ║
|
|
201
|
-
╚════════════════════════════════════════════════════════════════╝
|
|
202
74
|
```
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
"percentComplete": "55.26%"
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
# Response when fully synced:
|
|
220
|
-
false
|
|
75
|
+
┌─────────────────┐ WebSocket ┌───────────────────┐
|
|
76
|
+
│ JAELIS │ ◄───────────────── │ Your Local Node │
|
|
77
|
+
│ Main Network │ │ (jaelis-node) │
|
|
78
|
+
│ rpc.jaelis.io │ ───────────────► │ │
|
|
79
|
+
└─────────────────┘ newHeads │ ┌─────────────┐ │
|
|
80
|
+
subscription │ │ LevelDB │ │
|
|
81
|
+
│ │ Storage │ │
|
|
82
|
+
┌─────────────────┐ JSON-RPC │ └─────────────┘ │
|
|
83
|
+
│ Your dApp │ ◄───────────────── │ │
|
|
84
|
+
│ (browser/node) │ localhost:8545 │ ┌─────────────┐ │
|
|
85
|
+
└─────────────────┘ │ │ RPC Server │ │
|
|
86
|
+
│ └─────────────┘ │
|
|
87
|
+
└───────────────────┘
|
|
221
88
|
```
|
|
222
89
|
|
|
223
|
-
|
|
90
|
+
## CLI Options
|
|
224
91
|
|
|
225
|
-
|
|
92
|
+
| Option | Description | Default |
|
|
93
|
+
|--------|-------------|---------|
|
|
94
|
+
| `-n, --network <network>` | Network to connect to (`testnet` or `mainnet`) | `testnet` |
|
|
95
|
+
| `-p, --port <port>` | Local RPC server port | `8545` |
|
|
96
|
+
| `-d, --data-dir <dir>` | Data directory for block storage | `./jaelis-data/<network>` |
|
|
97
|
+
| `--name <name>` | Custom node name (e.g., `MARBIT`, `my-agent`) | Auto-generated ID |
|
|
98
|
+
| `--no-rpc` | Disable local RPC server | Enabled |
|
|
226
99
|
|
|
227
|
-
|
|
228
|
-
# See all connected nodes (run on main RPC)
|
|
229
|
-
curl -X POST https://rpc.jaelis.io \
|
|
230
|
-
-H "Content-Type: application/json" \
|
|
231
|
-
-d '{"jsonrpc":"2.0","method":"jaelis_node_getNodes","params":[],"id":1}'
|
|
100
|
+
## Programmatic Usage
|
|
232
101
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
102
|
+
```javascript
|
|
103
|
+
const { JaelisNode } = require('jaelis-node');
|
|
104
|
+
|
|
105
|
+
async function main() {
|
|
106
|
+
const node = new JaelisNode({
|
|
107
|
+
network: 'testnet',
|
|
108
|
+
rpcPort: 8545,
|
|
109
|
+
dataDir: './my-jaelis-data',
|
|
110
|
+
nodeName: 'MY-AGENT', // Name your node
|
|
111
|
+
enableRpc: true
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// Event listeners
|
|
115
|
+
node.on('connected', () => console.log('Connected to network'));
|
|
116
|
+
node.on('block', (block) => console.log('New block:', block.number));
|
|
117
|
+
node.on('synced', () => console.log('Fully synced!'));
|
|
118
|
+
|
|
119
|
+
// Start the node
|
|
120
|
+
await node.start();
|
|
121
|
+
|
|
122
|
+
// Get status
|
|
123
|
+
const status = node.getStatus();
|
|
124
|
+
console.log('Status:', status);
|
|
125
|
+
|
|
126
|
+
// Stop the node (graceful shutdown)
|
|
127
|
+
// await node.stop();
|
|
245
128
|
}
|
|
246
|
-
```
|
|
247
129
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
Connect to the WebSocket endpoint for real-time updates:
|
|
251
|
-
|
|
252
|
-
```javascript
|
|
253
|
-
const WebSocket = require('ws');
|
|
254
|
-
const ws = new WebSocket('wss://rpc.jaelis.io/ws');
|
|
255
|
-
|
|
256
|
-
ws.on('open', () => {
|
|
257
|
-
// Subscribe to new block headers
|
|
258
|
-
ws.send(JSON.stringify({
|
|
259
|
-
jsonrpc: '2.0',
|
|
260
|
-
method: 'jaelis_subscribe',
|
|
261
|
-
params: ['newHeads'],
|
|
262
|
-
id: 1
|
|
263
|
-
}));
|
|
264
|
-
});
|
|
265
|
-
|
|
266
|
-
ws.on('message', (data) => {
|
|
267
|
-
const msg = JSON.parse(data);
|
|
268
|
-
if (msg.method === 'jaelis_subscription') {
|
|
269
|
-
console.log('New block:', msg.params.result.number);
|
|
270
|
-
}
|
|
271
|
-
});
|
|
130
|
+
main();
|
|
272
131
|
```
|
|
273
132
|
|
|
274
|
-
|
|
275
|
-
| Subscription | Description |
|
|
276
|
-
|--------------|-------------|
|
|
277
|
-
| `newHeads` | New block headers as they're produced (real-time sync) |
|
|
278
|
-
| `newPendingTransactions` | Transaction hashes entering mempool |
|
|
279
|
-
| `logs` | Contract event logs (with filter options) |
|
|
280
|
-
| `syncing` | Sync status changes |
|
|
133
|
+
## RPC Methods Supported
|
|
281
134
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
## RPC Methods
|
|
285
|
-
|
|
286
|
-
Your node exposes standard JSON-RPC plus JAELIS-specific methods:
|
|
287
|
-
|
|
288
|
-
### Universal VM Methods
|
|
289
|
-
| Method | Description |
|
|
290
|
-
|--------|-------------|
|
|
291
|
-
| `jaelis_getSupportedLanguages` | Returns: `['solidity', 'rust', 'move', 'func', 'cairo', 'vyper']` |
|
|
292
|
-
| `jaelis_deployUnified` | Deploy unified bundle (multiple languages → ONE bytecode!) |
|
|
293
|
-
| `jaelis_deployContract` | Deploy single contract in any supported language |
|
|
294
|
-
| `jaelis_executeContract` | Execute contract method |
|
|
295
|
-
| `jaelis_crossContractCall` | Call between contracts of different languages (NO BRIDGES!) |
|
|
296
|
-
|
|
297
|
-
### Cross-Chain Settlement Methods
|
|
298
|
-
| Method | Description |
|
|
299
|
-
|--------|-------------|
|
|
300
|
-
| `jaelis_crossChain_getChains` | List all 30+ registered chains |
|
|
301
|
-
| `jaelis_crossChain_getChainInfo` | Get chain metadata (name, RPC, block time) |
|
|
302
|
-
| `jaelis_crossChain_readState` | Read settled external chain state |
|
|
303
|
-
| `jaelis_crossChain_settleState` | Submit proof and settle state |
|
|
304
|
-
| `jaelis_crossChain_getStateDiff` | Compare state across chains |
|
|
305
|
-
| `jaelis_crossChain_getLightClientStatus` | Check light client sync status |
|
|
306
|
-
|
|
307
|
-
### Wallet Standard Methods (ERC-5792, EIP-7702)
|
|
308
|
-
| Method | Description |
|
|
309
|
-
|--------|-------------|
|
|
310
|
-
| `jaelis_wallet_getCapabilities` | Get wallet capabilities |
|
|
311
|
-
| `jaelis_wallet_sendCalls` | Atomic batch transactions |
|
|
312
|
-
| `jaelis_wallet_getCallsStatus` | Check batch status |
|
|
313
|
-
| `jaelis_wallet_grantPermissions` | Grant session permissions |
|
|
314
|
-
| `jaelis_validateAddressSafety` | Anti-phishing check |
|
|
315
|
-
| `jaelis_checkDustAttacks` | Detect address poisoning |
|
|
316
|
-
|
|
317
|
-
### Multi-Ecosystem Compatibility Layers
|
|
318
|
-
|
|
319
|
-
JAELIS nodes support RPC methods from **every major blockchain ecosystem**. Developers can use their familiar method names - they all proxy to native `jaelis_*` methods under the hood.
|
|
320
|
-
|
|
321
|
-
#### Ethereum (eth_*)
|
|
322
|
-
| Method | Description |
|
|
323
|
-
|--------|-------------|
|
|
324
|
-
| `eth_blockNumber` | Get latest block number |
|
|
325
|
-
| `eth_getBalance` | Get account balance |
|
|
326
|
-
| `eth_sendTransaction` | Send transaction |
|
|
327
|
-
| `eth_call` | Call contract (read-only) |
|
|
328
|
-
| `eth_getTransactionReceipt` | Get transaction receipt |
|
|
135
|
+
JAELIS uses the `jaelis_*` namespace for all RPC methods:
|
|
329
136
|
|
|
330
|
-
|
|
137
|
+
### Chain Info
|
|
331
138
|
| Method | Description |
|
|
332
139
|
|--------|-------------|
|
|
333
|
-
| `
|
|
334
|
-
| `
|
|
335
|
-
| `
|
|
336
|
-
| `solana_getHealth` | Check node health |
|
|
140
|
+
| `jaelis_chainId` | Get chain ID (4547 mainnet, 4545 testnet) |
|
|
141
|
+
| `jaelis_blockNumber` | Get latest block number |
|
|
142
|
+
| `jaelis_syncing` | Get sync status |
|
|
337
143
|
|
|
338
|
-
|
|
144
|
+
### Block Queries
|
|
339
145
|
| Method | Description |
|
|
340
146
|
|--------|-------------|
|
|
341
|
-
| `
|
|
342
|
-
| `
|
|
343
|
-
| `btc_getblock` | Get block by hash |
|
|
344
|
-
| `btc_gettransaction` | Get transaction |
|
|
345
|
-
| `btc_getblockchaininfo` | Chain info |
|
|
346
|
-
| `btc_estimatesmartfee` | Returns 0 (zero fees!) |
|
|
347
|
-
|
|
348
|
-
#### Move/Aptos/Sui (move_*)
|
|
349
|
-
| Method | Description |
|
|
350
|
-
|--------|-------------|
|
|
351
|
-
| `move_getLedgerInfo` | Get ledger info |
|
|
352
|
-
| `move_getAccountResource` | Get account resource |
|
|
353
|
-
| `move_getAccountModule` | Get account module |
|
|
147
|
+
| `jaelis_getBlockByNumber` | Get block by number |
|
|
148
|
+
| `jaelis_getBlockByHash` | Get block by hash |
|
|
354
149
|
|
|
355
|
-
|
|
150
|
+
### Transaction Queries
|
|
356
151
|
| Method | Description |
|
|
357
152
|
|--------|-------------|
|
|
358
|
-
| `
|
|
359
|
-
| `
|
|
360
|
-
| `
|
|
361
|
-
| `ton_runGetMethod` | Run get method |
|
|
153
|
+
| `jaelis_getTransactionByHash` | Get transaction |
|
|
154
|
+
| `jaelis_getTransactionReceipt` | Get receipt |
|
|
155
|
+
| `jaelis_sendRawTransaction` | Submit signed tx (uses ENE, not nonces) |
|
|
362
156
|
|
|
363
|
-
|
|
157
|
+
### Account Queries (Relayed to Main Network)
|
|
364
158
|
| Method | Description |
|
|
365
159
|
|--------|-------------|
|
|
366
|
-
| `
|
|
367
|
-
| `
|
|
368
|
-
| `
|
|
369
|
-
| `
|
|
370
|
-
| `
|
|
160
|
+
| `jaelis_getBalance` | Get account balance |
|
|
161
|
+
| `jaelis_getENE` | Get ENE (Ephemeral Network Entropy) for transaction ordering |
|
|
162
|
+
| `jaelis_getSigil` | Get account SIGIL allocation |
|
|
163
|
+
| `jaelis_getCode` | Get contract code |
|
|
164
|
+
| `jaelis_call` | Call contract (read-only) |
|
|
371
165
|
|
|
372
|
-
|
|
166
|
+
### SIGIL Compute (Zero Gas Fees!)
|
|
373
167
|
| Method | Description |
|
|
374
168
|
|--------|-------------|
|
|
375
|
-
| `
|
|
376
|
-
| `
|
|
377
|
-
| `starknet_call` | Call contract |
|
|
378
|
-
| `starknet_estimateFee` | Returns 0 (zero fees!) |
|
|
379
|
-
| `starknet_getTransactionByHash` | Get transaction |
|
|
380
|
-
| `starknet_addInvokeTransaction` | Send invoke transaction |
|
|
169
|
+
| `jaelis_estimateSigil` | Estimate SIGIL compute for transaction |
|
|
170
|
+
| `jaelis_getSigil` | Get available SIGIL allocation |
|
|
381
171
|
|
|
382
|
-
|
|
172
|
+
> **Note:** JAELIS has ZERO gas fees. SIGIL represents compute allocation from XAI Colossus exaflops - it's not purchased, it's allocated.
|
|
383
173
|
|
|
384
|
-
|
|
385
|
-
const { JaelisNode, BootstrapNode } = require('jaelis-node');
|
|
386
|
-
|
|
387
|
-
// Create and start a node
|
|
388
|
-
const node = new JaelisNode({
|
|
389
|
-
network: 'testnet',
|
|
390
|
-
rpcPort: 8545,
|
|
391
|
-
p2pPort: 30303,
|
|
392
|
-
dataDir: './my-node-data',
|
|
393
|
-
rewardRecipient: '0xYourAddress' // Any chain address
|
|
394
|
-
});
|
|
395
|
-
|
|
396
|
-
await node.start();
|
|
397
|
-
|
|
398
|
-
// Get node status
|
|
399
|
-
const status = node.getStatus();
|
|
400
|
-
console.log('Chain ID:', status.chainId); // 4545 (testnet) or 4547 (mainnet)
|
|
401
|
-
console.log('Peers:', status.peerCount);
|
|
402
|
-
console.log('Block:', status.blockNumber);
|
|
403
|
-
|
|
404
|
-
// Listen for events
|
|
405
|
-
node.on('peer:connect', (peerCount) => {
|
|
406
|
-
console.log(`Connected peers: ${peerCount}`);
|
|
407
|
-
});
|
|
408
|
-
|
|
409
|
-
node.on('block:new', (block) => {
|
|
410
|
-
console.log(`New block: ${block.number}`);
|
|
411
|
-
});
|
|
412
|
-
|
|
413
|
-
// Stop the node
|
|
414
|
-
await node.stop();
|
|
415
|
-
```
|
|
174
|
+
## Network Info
|
|
416
175
|
|
|
417
|
-
|
|
176
|
+
| Network | Chain ID | Main RPC | WebSocket |
|
|
177
|
+
|---------|----------|----------|-----------|
|
|
178
|
+
| Testnet | 4545 | https://rpc.jaelis.io | wss://rpc.jaelis.io/ws |
|
|
179
|
+
| Mainnet | 4547 | https://mainnet.jaelis.io | wss://mainnet.jaelis.io/ws |
|
|
418
180
|
|
|
419
|
-
|
|
420
|
-
|---------|----------|---------|--------|
|
|
421
|
-
| Testnet | 4545 | https://rpc.jaelis.io | **Active** |
|
|
422
|
-
| Mainnet | 4547 | https://mainnet.jaelis.io | Coming Soon |
|
|
181
|
+
## Why Run Your Own Node?
|
|
423
182
|
|
|
424
|
-
|
|
183
|
+
1. **Privacy** - RPC requests don't go through public endpoints
|
|
184
|
+
2. **Speed** - Local reads are instant (no network latency)
|
|
185
|
+
3. **Decentralization** - More nodes = stronger network
|
|
186
|
+
4. **Reliability** - No dependency on public RPC availability
|
|
425
187
|
|
|
426
|
-
|
|
427
|
-
- **Uptime** - Keep your node running
|
|
428
|
-
- **Transactions Processed** - Help validate transactions
|
|
429
|
-
- **Bandwidth Provided** - Serve data to the network
|
|
430
|
-
- **Validator Mode** - Opt-in for bonus rewards
|
|
188
|
+
## System Requirements
|
|
431
189
|
|
|
432
|
-
|
|
190
|
+
- **Node.js** 18.0.0 or higher
|
|
191
|
+
- **Disk Space** - ~1GB for testnet, ~10GB for mainnet (grows over time)
|
|
192
|
+
- **Memory** - 512MB minimum, 1GB recommended
|
|
193
|
+
- **Network** - Stable internet connection
|
|
433
194
|
|
|
434
|
-
|
|
195
|
+
## Data Storage
|
|
435
196
|
|
|
436
|
-
|
|
437
|
-
# Set reward wallet (can do before or after starting node)
|
|
438
|
-
jaelis-node wallet:set-recipient 0xYourAddress
|
|
197
|
+
The node stores synced blocks in LevelDB:
|
|
439
198
|
|
|
440
|
-
|
|
441
|
-
jaelis-
|
|
199
|
+
```
|
|
200
|
+
./jaelis-data/
|
|
201
|
+
└── testnet/
|
|
202
|
+
└── blocks/ # LevelDB database
|
|
442
203
|
```
|
|
443
204
|
|
|
444
|
-
|
|
205
|
+
To reset, simply delete the data directory and restart.
|
|
445
206
|
|
|
446
|
-
|
|
447
|
-
|-------------|---------|-------------|
|
|
448
|
-
| Node.js | v18.0.0 | v20.x LTS |
|
|
449
|
-
| RAM | 4 GB | 8+ GB |
|
|
450
|
-
| Storage | 50 GB SSD | 200+ GB SSD |
|
|
451
|
-
| CPU | 2 cores | 4+ cores |
|
|
452
|
-
| Network | 10 Mbps | 100+ Mbps |
|
|
207
|
+
## Updates
|
|
453
208
|
|
|
454
|
-
|
|
209
|
+
The node checks for updates on startup. To update:
|
|
455
210
|
|
|
456
|
-
```
|
|
457
|
-
jaelis-
|
|
458
|
-
├── blockchain/ # Block and state data (LevelDB)
|
|
459
|
-
│ ├── state/ # Account states, contract storage
|
|
460
|
-
│ ├── blocks/ # Block headers and transactions
|
|
461
|
-
│ └── index/ # Chain indexes
|
|
462
|
-
├── node-registry/ # Node tracking and statistics
|
|
463
|
-
├── wallet-config/ # Wallet configuration
|
|
464
|
-
├── peers/ # Peer database
|
|
465
|
-
├── keys/ # Node identity keys
|
|
466
|
-
└── logs/ # Node logs
|
|
211
|
+
```bash
|
|
212
|
+
npm update -g jaelis-node
|
|
467
213
|
```
|
|
468
214
|
|
|
469
|
-
|
|
215
|
+
## Troubleshooting
|
|
470
216
|
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
| Variable | Description | Default |
|
|
474
|
-
|----------|-------------|---------|
|
|
475
|
-
| `JAELIS_NETWORK` | Network (testnet/mainnet) | `testnet` |
|
|
476
|
-
| `JAELIS_DATA_DIR` | Data directory | `./jaelis-data` |
|
|
477
|
-
| `JAELIS_RPC_PORT` | RPC port | `8545` |
|
|
478
|
-
| `JAELIS_P2P_PORT` | P2P port | `30303` |
|
|
479
|
-
| `JAELIS_REWARD_ADDRESS` | Reward wallet address | - |
|
|
480
|
-
|
|
481
|
-
## Docker
|
|
217
|
+
### Connection Issues
|
|
482
218
|
|
|
483
219
|
```bash
|
|
484
|
-
#
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
-
|
|
488
|
-
-p 30303:30303 \
|
|
489
|
-
-v jaelis-data:/data \
|
|
490
|
-
-e JAELIS_REWARD_ADDRESS=0xYourAddress \
|
|
491
|
-
jaelis/node start --network testnet
|
|
220
|
+
# Check if main network is reachable
|
|
221
|
+
curl https://rpc.jaelis.io -X POST \
|
|
222
|
+
-H "Content-Type: application/json" \
|
|
223
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"jaelis_blockNumber","params":[]}'
|
|
492
224
|
```
|
|
493
225
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
### Patent-Pending Technology
|
|
497
|
-
JAELIS implements three patent-pending systems:
|
|
498
|
-
1. **Universal VM Architecture** - Multi-language contract execution
|
|
499
|
-
2. **Cross-Chain Light Client Protocol** - Trustless external state verification
|
|
500
|
-
3. **LODE Computation Model** - Zero-fee transaction processing
|
|
501
|
-
|
|
502
|
-
### Security
|
|
503
|
-
- Real libp2p P2P networking (same protocol as Ethereum 2.0, Filecoin, IPFS)
|
|
504
|
-
- Automatic peer discovery and DHT routing
|
|
505
|
-
- Built-in MEV protection
|
|
506
|
-
- Address poisoning detection
|
|
507
|
-
- No trusted setup for privacy features
|
|
226
|
+
### Port Already in Use
|
|
508
227
|
|
|
509
|
-
|
|
228
|
+
```bash
|
|
229
|
+
# Use a different port
|
|
230
|
+
jaelis-node --port 8546
|
|
231
|
+
```
|
|
510
232
|
|
|
511
|
-
|
|
233
|
+
### Clear and Resync
|
|
512
234
|
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
"url": "https://mcp.jaelis.io/sse"
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
}
|
|
235
|
+
```bash
|
|
236
|
+
# Delete data directory and restart
|
|
237
|
+
rm -rf ./jaelis-data
|
|
238
|
+
jaelis-node
|
|
521
239
|
```
|
|
522
240
|
|
|
523
|
-
Add this to your Claude Desktop config and get 274+ JAELIS tools automatically - create wallets, send transactions, deploy contracts, query balances, and more.
|
|
524
|
-
|
|
525
241
|
## Links
|
|
526
242
|
|
|
527
|
-
- SDK
|
|
528
|
-
- Website
|
|
529
|
-
- Documentation
|
|
530
|
-
-
|
|
243
|
+
- **SDK:** [npmjs.com/package/jaelis.js](https://www.npmjs.com/package/jaelis.js)
|
|
244
|
+
- **Website:** [jaelis.io](https://jaelis.io)
|
|
245
|
+
- **Documentation:** [docs.jaelis.io](https://docs.jaelis.io)
|
|
246
|
+
- **Explorer:** [explorer.jaelis.io](https://explorer.jaelis.io)
|
|
247
|
+
- **GitHub:** [github.com/jaelis-foundation](https://github.com/jaelis-foundation)
|
|
531
248
|
|
|
532
249
|
## License
|
|
533
250
|
|