{"id":32928804,"url":"https://github.com/network-lumen/blockchain","last_synced_at":"2026-02-05T03:09:15.578Z","repository":{"id":324969393,"uuid":"1092701411","full_name":"network-lumen/blockchain","owner":"network-lumen","description":"Lumen blockchain core — custom Cosmos-SDK chain with tax logic, gasless tx, and PQC-ready validation.","archived":false,"fork":false,"pushed_at":"2026-02-01T17:20:08.000Z","size":8838,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-02T01:50:10.708Z","etag":null,"topics":["blockchain","cosmos-sdk","ipfs"],"latest_commit_sha":null,"homepage":"https://lumen-network.org/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/network-lumen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security.md","support":null,"governance":"docs/governance.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-09T06:00:47.000Z","updated_at":"2026-02-01T17:19:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/network-lumen/blockchain","commit_stats":null,"previous_names":["network-lumen/blockchain"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/network-lumen/blockchain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-lumen%2Fblockchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-lumen%2Fblockchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-lumen%2Fblockchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-lumen%2Fblockchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/network-lumen","download_url":"https://codeload.github.com/network-lumen/blockchain/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-lumen%2Fblockchain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29108474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T02:48:39.389Z","status":"ssl_error","status_checked_at":"2026-02-05T02:48:27.400Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","cosmos-sdk","ipfs"],"created_at":"2025-11-11T11:00:22.888Z","updated_at":"2026-02-05T03:09:15.558Z","avatar_url":"https://github.com/network-lumen.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Lumen\n\nLumen is a Cosmos SDK chain focused on DNS auctions, release distribution, and gateway settlement flows.  \nThe codebase is organised as a standard Go module (`module lumen`) and relies on the Cosmos SDK v0.53 stack.\n\n\n## Modules at a Glance\n\n| Module | Purpose |\n|--------|---------|\n| `x/dns` | On-chain domain registry with auction mechanics. |\n| `x/gateways` | Gateway contracts, settlement, and rate limits. |\n| `x/release` | Artifact publishing, mirroring, and verification. |\n| `x/tokenomics` | Chain-wide economic parameters (supply, taxation). |\n| `x/pqc` | Dilithium key registry + dual-sign ante (always REQUIRED). |\n| `x/gov` (SDK) | Cosmos governance module backing DAO votes \u0026 param authority. |\n\n\n## Security\n\n- **PQC is mandatory.** There is no configuration knob or CLI flag that disables Dilithium signatures.\n- Release builds panic if a non-approved PQC backend (test-only/noop) is linked. CI guards enforce this.\n- Admission control relies on signature checks, per-account rate limits, and a global mempool cap.\n\n## Project docs\n\n- 🔐 Security: see [SECURITY.md](./SECURITY.md) and the detailed [docs/Security.md](./docs/Security.md)\n- 🧪 Simulator (Docker): see [docs/simulation.md](./docs/simulation.md)\n- 🧩 Changelog: see [CHANGELOG.md](./CHANGELOG.md)\n- 🤝 Contributing: see [CONTRIBUTING.md](./CONTRIBUTING.md)\n\n## Requirements\n\n- Go 1.25.3+ (recommended; older Go 1.23/1.24 still work with toolchain forwarding)\n- `jq`, `curl`, `sed`, `awk`, `find`, `tar`\n- `buf` (for protobuf generation)\n- Docker ≥ 24.0 (only if you use the builder image)\n\n## Building\n\n\u003e ℹ️ **Workflow note:** Documentation now references `make \u003ctarget\u003e` wrappers (e.g. `make build-native`). The underlying\n\u003e `.sh` helpers remain in `devtools/scripts` and `devtools/tests` for direct use when needed.\n\n```bash\n# Local developer build (produces build/lumend)\nmake build-native\n\n# Optional: copy binaries to a custom directory\nNETWORK_DIR=artifacts/bin make build-native\n```\n\nThe canonical binary entry point lives in `cmd/lumend`.\n\n\u003e **Toolchain note:** The module defines `go 1.25.3` and may include a `toolchain go1.25.3` directive.\n\u003e Users running Go ≥ 1.21 automatically forward to the proper toolchain without setting `GOTOOLCHAIN` manually.\n\n## Testing\n\n```bash\n# Unit tests only\n./devtools/scripts/go_test.sh\n\n# Full suite: unit tests + end-to-end flows + REST smoke checks\nHOME=$(mktemp -d) make e2e\n\n# PQC flow only (Dilithium3 dual-signing)\nmake e2e-pqc\n\n# Static analysis\nmake lint\n\n# Vulnerability scan\nmake vulncheck\n```\n\nIndividual flows are exposed via dedicated make targets (wrapping the scripts under `devtools/tests/`), e.g.\n`make e2e-dns-auction`, `make e2e-send-tax`, `make e2e-gateways`, `make e2e-release`, or `make e2e-gov`. Most targets rebuild the\nbinary unless `SKIP_BUILD=1` is exported.\n\nThe PQC client injector is enabled by default; pass `--pqc-enable=false` on any `lumend tx` command to intentionally\nomit Dilithium signatures (useful for negative tests such as the `e2e_pqc` flow).\n\nYou can run all end-to-end tests with:\n\n```bash\nmake e2e-pqc\nHOME=$(mktemp -d) make e2e\nmake e2e-gov ARGS=\"--skip-build\"\n```\n\nAll E2E scripts now enforce PQC dual-signing by default.\n\nFor a focused gate before opening PRs, run `make preflight`. To spin up a short-lived Docker network that exercises PQC,\nDNS, gateways, releases, and rate limits end-to-end, use:\n\n```bash\nmake simulate-network ARGS=\"--fast --clean\"\n```\n\n## Fees \u0026 Mempool\n\nGas prices must remain zero: the node refuses to start if `--minimum-gas-prices` is set to any non-zero value.\nInstead of fee bidding, admission control\nrelies on strict **per-account** and **global** rate limits plus consensus-level block caps. Operators should monitor\nthe `LUMEN_RL_*` environment knobs only to tighten limits; lowering them below the built-in clamps has no effect.\nTo avoid dust spam, tokenomics enforces `min_send_ulmn` (default `1000ulmn`) on every `MsgSend`/`MsgMultiSend` output (module accounts are exempt).\n\n## Local Validation (Go 1.23/1.24/1.25)\n\nTested with Go 1.23, 1.24, and 1.25.\nThe blocking jobs remain golangci-lint run ./..., staticcheck ./..., and ./devtools/scripts/go_test.sh.\n\nThe make vulncheck target first runs a source scan; if it encounters the known upstream internal error\n(x/sys/unix ↔ go-isatty), it rebuilds build/lumend and retries using govulncheck -mode=binary.\nOnly that specific internal error is tolerated — any other failure remains blocking.\n\n```bash\ngo mod tidy\nmake lint\nmake staticcheck\n./devtools/scripts/go_test.sh\nmake vuln-tools \u0026\u0026 make vulncheck\n```\nThe optional make vulncheck-json target writes a non-blocking JSON report under\nartifacts/security/ (source first, then binary fallback).\n\n✅ All CI checks (lint, staticcheck, vulncheck, e2e tests) pass cleanly under Go 1.25.3.\n\n## Protobuf Codegen\n\n```bash\nbuf generate --template proto/buf.gen.gogo.yaml\n```\n\nGeneration is configured via `buf.gen.yaml`/`buf.yaml` and writes Go code into the module tree under `x/\u003cmodule\u003e/types`. The `make proto` target wraps the command and runs `go mod tidy` afterwards.\n\n## Docker Builder\n\nA multi-stage builder lives in `devtools/docker/builder/`. Usage for both the builder target (extracting binaries) and the developer shell target is documented under [devtools/README.md](devtools/README.md#tools--scripts).\n\n## Simulation (Docker)\n\nEnd-to-end network simulation (seed, validators, full nodes, and a control runner) lives behind `make simulate-network`\n(wrapping [`devtools/scripts/simulate_network.sh`](devtools/scripts/simulate_network.sh)). It exercises PQC linking + the negative\npath, bank tax enforcement, DNS register→auction→settle, gateway contract create/claim/finalize, release publish, and\nper-account/global rate-limit clamps. Logs and snapshots land under `artifacts/sim/`.\n\n**Requirements:** Docker, Go, `jq`.\n\n**Quick smoke:**\n```bash\nmake simulate-network              # defaults: 2 validators, 1 full node\n```\n\nThe seed node’s RPC/API bindings default to `localhost:27657` / `localhost:2327` (with `27656` for P2P). Override them with\n`SIM_HOST_RPC_PORT`, `SIM_HOST_API_PORT`, or `SIM_HOST_P2P_PORT` if those ports are already in use (for example, when you\nkeep the Docker devnet online while running the simulator).\n\n**Heavier run (cleanup + stronger global clamp signal):**\n```bash\nLUMEN_RL_GLOBAL_MAX=50 make simulate-network ARGS=\"--clean --timeout 600\"\n```\n\nFlags forwarded to the script: `--validators N`, `--fullnodes N`, `--fast`, `--clean`, `--keep`, `--timeout SEC`,\n`--image \u003ctag\u003e`.\n\nOn WSL, ensure Docker Desktop integration is enabled for the distribution. On Linux hosts add your user to the\n`docker` group so the Makefile can reach the daemon.\n\nSee also:\n- [devtools/README.md](devtools/README.md#tools--scripts) for CLI helpers and environment knobs.\n- [docs/Security.md](docs/Security.md) for operational hardening notes.\n- [docs/modules/pqc.md](docs/modules/pqc.md) for PQC policy details (required dual-signing; rotate disabled).\n\n## Releases\n\nCross-platform release artifacts (Linux amd64/arm64, macOS arm64) can be produced locally with:\n\n```bash\nmake build-release\n```\n\nThe script emits binaries plus `SHA256SUMS`; verify the checksums before distributing artifacts.\n\nOutputs land in `dist/\u003cgit-describe\u003e/` alongside `SHA256SUMS`. Tagging and publishing remain a manual git/GitHub step.\n\nOn-chain release metadata (`x/release`) accepts `https://`, `ipfs://`, and `lumen://{ipfs,ipns,fqdn}` URLs, so published bundles can point to decentralized mirrors as well as traditional HTTPS endpoints (see [`docs/releases.md`](docs/releases.md) for details).\n\n## Repository Map\n\n```\napp/                    # Cosmos SDK application wiring\ncmd/lumend/             # CLI entry point\ndevtools/               # Build, test, docker, systemd tooling\ndocs/                   # Additional operator and module docs\nproto/                  # Protobuf definitions\nx/*                     # Cosmos SDK modules\n```\n\n## PQC\n\n`x/pqc` exposes the account-level Dilithium registry and the dual-sign ante decorator. Runtime policy is **always\nREQUIRED**: even if genesis params carry another enum, the keeper forces REQUIRED in-memory and `SetParams` panics if a\ndifferent value is supplied. Release binaries panic during `init()` if a non-approved PQC backend is linked (only the\nCircl and PQClean Dilithium3 implementations are accepted).\n\nThe CLI auto-signs the PQC payload for each transaction (`--pqc-enable=true` by default) and exposes `lumend keys pqc-*`\nhelpers (dev/test build tags only) for importing/testing Dilithium key material. Passing `--pqc-enable=false` merely produces the negative path\nused in tests—such transactions are rejected on-chain when the policy is REQUIRED.\n\nSee [docs/modules/pqc.md](docs/modules/pqc.md) for signing instructions, parameter descriptions, and CLI usage.\n\n## License\n\nMIT – see [LICENSE](LICENSE).\n\n\u003e ⚠️ Disclaimer: Lumen is open-source software provided *as is*. The maintainers are not responsible for third-party usage, forks, or deployments of the codebase.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetwork-lumen%2Fblockchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetwork-lumen%2Fblockchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetwork-lumen%2Fblockchain/lists"}