3eb361df36
feat(rpc): add nu_getValidator handler
...
Returns ValidatorState from DB for a given address, null if not registered.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 14:54:55 +03:00
142264191c
feat(block-loop): validator rotation + PoN update + scheduler auto-txs
...
- BlockLoopConfig gains dev_mode flag; rotation check skipped in dev mode
- load_validator_set() scans "validator:" prefix each slot for live state
- update_validator_pon() bumps pon_score and consecutive_blocks after honest block
- generate_scheduler_txs() injects VotingOpen / NodeApprove / NodeReject auto-txs
- ValidatorSet: slot_producer(), update(), get(), active_count(), Default, is_banned filter
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 14:50:18 +03:00
015e521ae2
feat(consensus): slashing, ValidatorState, scheduler auto-tx, NodeApprove/Reject execution
2026-04-24 14:14:55 +03:00
ef3d18ef56
feat(consensus): slashing, skip tracking, scheduler auto-tx injection into block loop
2026-04-24 12:31:46 +03:00
9837edfb1f
feat(node): wire P2P gossip channel to RPC sendRawTx and block announce
2026-04-24 11:55:27 +03:00
04e5f3d166
feat(node): wire P2pSender into block_loop; add --p2p-addr and --bootstrap CLI flags
2026-04-24 11:52:44 +03:00
e30652f264
docs: update CHANGELOG for v0.3.0
2026-04-24 11:36:37 +03:00
2c6db93043
feat(vm): implement NodeSubmit, VoteRegister, VoteCast, StakeOp execution
2026-04-24 11:30:05 +03:00
a81b1851ce
feat(vm): define Shell/NUT/NU constants, set NODE_REWARD to 100 NUT
2026-04-24 11:11:35 +03:00
f9925eba79
feat(rpc): implement nu_getBlock handler
2026-04-24 11:04:00 +03:00
70b326a24f
docs: add CHANGELOG.md (Keep a Changelog format)
2026-04-24 10:56:50 +03:00
265097375a
feat(nu-node): single-validator block production loop
...
- nu-vm/engine.rs: execute_block runs all txs in a block against StateDb;
TokenTransfer fully applied, other variants return "not implemented" receipt
- StateAccessor trait: set_balance/inc_nonce now take &self (RocksDB interior mutability)
- src/block_loop.rs: tokio task that produces a block each slot (6s) in dev mode;
drains mempool, executes txs, removes successful ones, persists block to RocksDB
- StateDb wrapped in Arc<Mutex> — block loop holds write lock per block, RPC holds
read lock for nu_getAccount
- main.rs: spawns block_loop when --dev --validator flags are set
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:54:48 +03:00
fd829ba1dd
feat(nu-node): implement nu_sendRawTx with mempool integration
...
- nu-block: TxPayload enum with all variants (user + auto/scheduler)
- nu-mempool: PendingTx wraps RawTransaction; priority derived from TxPayload
- nu-rpc: nu_sendRawTx decodes JSON tx, deduplicates, inserts into mempool
- AppState: holds Arc<Mutex<Mempool>> alongside StateDb
- main.rs: initializes mempool and passes to RpcServer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:32:26 +03:00
a42ca0f8d3
feat(nu-node): wire axum RPC server, StateAccessor impl, --dev mode entry point
...
- nu-rpc: axum HTTP server on /rpc, dispatches JSON-RPC requests
- nu-rpc: nu_chainInfo and nu_getAccount return real state from RocksDB
- nu-state: StateAccessor trait implemented on StateDb (get/set balance, nonce)
- nu-vm: executor uses StateAccessor from nu-state (single source of truth)
- main.rs: clap CLI with --dev --validator --rpc-addr --db-path --chain-id
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:25:48 +03:00
f7cff4513d
chore(docker): add dev Dockerfile for multi-stage Rust build
2026-04-24 09:21:40 +03:00
5430c34d9e
feat(nu-node): initial Faz 0 scaffold
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 00:00:26 +03:00