2486 Commits
Author SHA1 Message Date
Zach Kelling 7e17e4a535 fix: exclude broken geth v1.16.1, bump crypto/node/consensus
- Exclude geth v1.16.1 with wrong module path
- crypto v1.17.24 → v1.17.25
- node v1.22.20 → v1.22.21
- consensus v1.22.27 → v1.22.31
2025-12-20 14:01:03 -08:00
Zach Kelling 952122b3d4 fix: first validator immediate allocation + Chain naming
- First validator gets immediate allocation (no vesting) for wallet ops
- Other validators get 1B LUX with 100-year vesting
- Rename Net -> Chain for consistency with Lux node API
- Update to genesis v1.5.7
2025-12-20 08:17:45 -08:00
Zach Kelling e529ccf262 fix: use format string for ux.Print to fix go vet error 2025-12-19 10:29:38 -08:00
Zach Kelling b228c12d75 chore(deps): upgrade node to v1.22.20 with git-tag version 2025-12-19 07:27:08 -08:00
Zach Kelling 2f9accfb10 Refactor subnet→chain terminology and update genesis to v1.5.6
Major changes:
- Rename SubnetSpec → ChainSpec/ParticipantSpec throughout codebase
- Rename BlockchainSpec → ChainSpec for full chain definitions
- Update all protobuf definitions with new naming
- Fix duplicate variable declarations from sed replacements
- Update copyright headers to BSD-3-Clause with SPDX identifiers
- Update github.com/luxfi/genesis to v1.5.6 (BLS signer keys)

The genesis v1.5.6 update adds:
- Initial stakers with BLS publicKey and proofOfPossession
- Initial allocations for local network testing
- Fixes "failed to load database state: not found" error

Build fixes:
- Fix api/mocks/client.go CChainAPI return type
- Fix local/node_test.go with build tag for integration tests
- Fix parameter name collisions (chainConfigs → pChainConfigs)
2025-12-19 07:11:06 -08:00
Zach Kelling 55113bf301 fix: skip PrimaryNetworkID when querying subnet info
The updateSubnetInfo function was failing because GetNets returns the
Primary Network (which has ID ids.Empty). GetCurrentSupply succeeds for
the Primary Network (since it has supply) but it's not an elastic
subnet, so GetElasticSubnetID fails with "subnetID not found on map".

This fix filters out both PlatformChainID and PrimaryNetworkID when
collecting subnet IDs to query.

Also updates genesis dependency to v1.5.5.
2025-12-16 16:55:27 -08:00
Zach Kelling f14c3ac9ee Update genesis to v1.5.1 (devnet ID fix) 2025-12-13 20:16:23 +00:00
Zach Kelling 7d59785e58 Update genesis to v1.5.0
Adds configs package for network genesis loading and CLI tool for
generating primary.json configurations.
2025-12-13 20:12:39 +00:00
Zach Kelling 45d55963cc Remove binary 2025-12-13 03:02:05 -08:00
Zach Kelling 76d56692ec Update deps 2025-12-13 10:57:40 +00:00
Zach Kelling a3432cec0b Fix build, bump deps 2025-12-13 10:53:55 +00:00
Zach Kelling 68bec8d148 Add DEX example 2025-12-13 00:06:44 -08:00
Zach Kelling 1803ca79d3 Update dependencies for package compatibility
- node v1.22.10
- genesis v1.4.4
- warp v1.16.35
- p2p v1.4.4
2025-12-13 01:59:26 +00:00
Zach Kelling 2105ae11d8 Update config.go to use ids.ShortID types from genesis package
The genesis package now uses ids.ShortID and ids.NodeID types directly
with custom JSON marshaling. Updated NewLuxGenesis to construct these
types properly instead of using string values.
2025-12-13 01:59:26 +00:00
Zach Kelling 606ff5bc96 Add keys fixes 2025-12-12 01:29:40 +00:00
Zach Kelling 1e46a267f9 Update LICENSE 2025-12-12 00:09:37 +00:00
Zach Kelling 87ec7d08b7 Remove older files 2025-12-12 00:09:03 +00:00
Zach Kelling 9bbd2e0dbb Update to luxfi/ids v1.2.2 2025-12-11 22:59:08 +00:00
Zach Kelling c3622e86f1 Update luxfi/ids to v1.2.1 with Z-Chain and G/I/K placeholders 2025-12-11 22:56:13 +00:00
Zach Kelling 60e5d480db chore: upgrade to luxfi/ids v1.2.0 with native chain IDs 2025-12-11 22:36:28 +00:00
Zach Kelling f0c2dc979e fix: use first validator address for initialStakedFunds
The initialStakedFunds field must reference an address that exists
in the allocations with proper unlock schedule. Previously it used
the treasury address which wasn't in allocations.

Now uses the first validator key address which is guaranteed to
exist in the allocations generated from ~/.lux/keys/ files.

This fixes "initial staked funds validation failed" error when
starting mainnet/testnet networks.
2025-12-11 11:17:51 -08:00
Zach Kelling 9daf099eb3 fix: add ca-certificates to builder stage for go mod download 2025-12-10 19:45:46 -08:00
Zach Kelling 15ee9d8232 fix: use Go 1.25.5 with custom Docker build stage
Download Go 1.25.5 directly in Dockerfile since official images don't exist yet.
2025-12-10 19:37:53 -08:00
Zach Kelling 9aeb05ba49 fix: downgrade Go version to 1.23.4 for Docker compatibility 2025-12-10 19:25:38 -08:00
Zach Kelling fd4b1086e0 fix(docker): use debian-slim for cross-platform compatibility
- Replace alpine with debian-slim for runtime stage
- Replace alpine builder with golang:bookworm
- Fixes QEMU emulation failures with ARM64 builds
- Use static binary for better portability
2025-12-10 19:19:41 -08:00
Zach Kelling 9acbaa5cf1 fix(ci): use static sha- prefix for docker tags 2025-12-10 19:00:58 -08:00
Zach Kelling 80304bce4b Add QWEN.md and CODEX.md to gitignore 2025-12-10 02:07:02 +00:00
Zach Kelling 4ee9566f35 Remove redundant documentation files
Clean up AI-generated markdown files that duplicated information
already covered in README.md
2025-12-10 01:58:48 +00:00
Zach Kelling afefff5fcc feat: Load wallet keys from ~/.lux/keys at runtime
- Remove hardcoded genesis.EWOQKey dependency
- Add getDefaultKey() function to load keys from ~/.lux/keys
- Add keys.go module for key management (LoadOrGenerateKeys, GenerateVestingSchedule)
- Update genesis dependency to v1.2.7 (no embedded keys)
- Keys are never embedded in source code

Breaking: Applications must have keys in ~/.lux/keys or they will be auto-generated
2025-12-09 21:03:44 +00:00
Zach Kelling e9ad6d53b7 feat: Improve genesis config and graceful shutdown handling
- Add treasury and ewoq allocations to mainnet genesis
- Use proper treasury address for reward and stake allocations
- Add ewoq allocation with immediately available P-chain funds
- Improve graceful shutdown exit code handling (accept 0, -1, 2, 130, 143)
- Update dependencies: node v1.21.5, genesis v1.2.5, evm v0.8.1
- Remove local replace directive for genesis
2025-12-09 07:15:36 +00:00
Zach Kelling b6e86e3497 Fix default node flags for multi-node local development
Use sybil-protection-enabled=false instead of dev-mode and
poa-single-node-mode since dev-mode is for single-node only.
2025-12-05 00:45:14 +00:00
Zach Kelling 63e56e9cb8 Update node flags to use dev-mode instead of deprecated consensus params
The old flags consensus-sample-size, consensus-quorum-size, and
consensus-commit-threshold have been replaced with dev-mode and
poa-single-node-mode in luxd v1.21.0.
2025-12-05 00:38:23 +00:00
Hanzo Dev 15b5c71d5c Fix imports to use separate packages instead of node monolith
- Use luxfi/consensus/validators instead of node/consensus/validators
- Use luxfi/ids instead of node/ids
- Use luxfi/log instead of node/utils/logging
- Use luxfi/utils/set instead of node/utils/set
- Use luxfi/genesis instead of node/genesis
- Use luxfi/evm/plugin/evm/client instead of geth/plugin/evm/client

Removes dependency on non-existent node packages in v1.21+
2025-12-04 16:20:15 -08:00
Zach Kelling 094c0290fe Update node to v1.21.3 with migrate package support 2025-12-04 23:51:15 +00:00
Hanzo Dev 0a037d995b Update to EVM v0.8.1 2025-12-04 15:08:45 -08:00
Hanzo Dev f1eb2d9871 ci: add Docker Hub publishing for netrunner 2025-12-04 14:52:16 -08:00
Hanzo Dev c4ab5ba3fc ci: add Docker Hub publishing for netrunner
- Added docker-publish.yml workflow
- Publishes to docker.io/luxfi/netrunner and ghcr.io/luxfi/netrunner
- Multi-arch: linux/amd64 + linux/arm64

Usage:
  docker run --rm luxfi/netrunner --help
2025-12-04 14:52:02 -08:00
Zach Kelling e77f5a46a9 deps: update to latest luxfi packages, remove local replace directives
- luxfi/genesis v1.2.4 (fixes redeclared config functions)
- luxfi/evm v1.16.20
- luxfi/node v1.20.7
- luxfi/log v1.1.24
- luxfi/consensus v1.22.2

Removes all local replace directives to use published versions.
2025-12-04 22:22:52 +00:00
Hanzo Dev 4ccc247cad Remove local replace directives from go.mod
Replace directives pointing to /home/z/work/lux/* paths were accidentally
committed. These should only be used locally via go.work, not committed
to the repository.
2025-12-04 07:42:00 -08:00
Hanzo Dev 925dea5b69 feat: change default port from 8080 to 9000
Updated default server port to 9000 and grpc-gateway port to 9001 for:
- server command
- control command
- ping command

This aligns with the standard port convention for netrunner.
2025-12-04 07:26:19 -08:00
Zach Kelling 064b32d03a fix: Update default flags and add mainnet/testnet genesis support
- Fix invalid flag names in default/flags.json:
  - network-peer-list-gossip-frequency → network-peer-list-pull-gossip-frequency
  - Remove deprecated api-ipcs-enabled flag
- Add mainnet (96369) and testnet (96368) genesis configurations
- Server now detects network-id and uses appropriate genesis
2025-11-29 00:12:57 +00:00
Zach Kelling bde9ea239c fix: Update netrunner for latest luxfi package APIs
- Fix genesis cChainGenesis parsing to handle both string and map formats
- Update tmpnet API usage for ReadNetwork, Start signatures
- Update import paths for renamed packages
- Fix type assertions and field access patterns
2025-11-28 22:20:44 +00:00
Hanzo Dev 7e9ca54ba8 Fix genesis format and add local network startup script
- Fix genesis cChainGenesis format: convert object to JSON string
  * Resolves unmarshal error when starting luxd nodes
  * Genesis field must be JSON string, not object

- Add script to start local 5-node network
  * Uses pre-configured staking certificates from local/default/
  * Properly configures bootstrap IPs and node IDs
  * Includes peer connection verification
2025-11-16 23:34:20 -08:00
Hanzo Dev 590aa5633b fix: update genesis import paths
- Change from github.com/luxfi/node/genesis
- To github.com/luxfi/genesis/pkg/genesis
- Add replace directive for genesis package

Part of genesis consolidation effort
2025-11-13 13:30:07 -08:00
Hanzo Dev c50eca8711 feat: update consensus import paths for v1.21.1
- Fixed validators → validator import path
- Added local replace directives for development
2025-11-10 08:20:37 -08:00
Zach Kelling 1e0fb9385e Replace AVAX with LUX - no AVAX only LUX 2025-10-05 05:59:29 +00:00
Zach Kelling 96f25909a2 Add EthClient stub implementation for E2E tests
- Define EthClient interface with all required methods
- Create stub implementation that returns test values
- Add NewEthClient function to match old API signature
- Return non-zero balance for test assertions

This allows CLI E2E tests to compile and run without full EthClient implementation.
2025-10-02 08:09:24 +00:00
Zach Kelling 99526deb58 feat: add database package and update node to v1.18.18
- Add luxfi/database v1.2.1 dependency
- Update luxfi/node from v1.18.11 to v1.18.18
- Remove deprecated canoto dependency
- Update engine and orchestrator for compatibility
2025-09-30 00:04:32 +00:00
Zach Kelling c98952ac0c Fix LUXAssetID -> XAssetID and update node to v1.18.11 2025-09-27 03:33:46 +00:00
Zach Kelling 3219e51735 Update to consensus v1.19.7 and node v1.18.10 2025-09-27 03:29:04 +00:00