# Release generator scripts These are the scripts that produced the published mainnet files from their inputs. They are published for transparency: every edit they make is a counted, exact text replacement, so you can read precisely how each release file differs from its input. Paths of the build machine were replaced by environment variables (defaults in brackets). | Script | Produces | Inputs | |---|---|---| | `emission_artifact.py` | `emission/kompromis-120b.json` (+ .sha256, .sig) | K120b constants in the script, cross-check table `EDDY_K120B_TABLES` [k120b_tables.json], signing key `EDDY_SIGNING_KEY_DIR` | | `make_genesis.py` | `genesis/genesis.json` (+ .sha256, .sig) – run once | emission artifact `EDDY_EMISSION_DIR` [emission], signing key `EDDY_SIGNING_KEY_DIR` | | `build_mainnet_release.py` | `node/eddycoin_node.py` | node_net prototype builder, emission artifact, genesis, old-key list `EDDY_DENYLIST` | | `build_pool_explorer.py` | `pool/eddycoin_pool.py`, `explorer/eddycoin_explorer.py` | released node + the earlier test-network pool/explorer sources (`EDDY_TESTNET_POOL_SRC`, `EDDY_TESTNET_EXPLORER_SRC`) | | `patch_sources.py` | miner sources (first mainnet build) | v2 kit miner sources, `EDDY_DENYLIST` | | `patch_clients.py` | current `miners/` + `wallet/` sources (2026-10-28: default node port 8773, multi-node failover, hash-only old-key list) | previous miner/wallet sources (`EDDY_MINER_SRC`, `EDDY_WALLET_SRC`), hashed old-key modules (`EDDY_HASHED_DIR`) | Not included, on purpose: the emission/genesis **private signing key** (only its public key is published; the signatures can be checked with `genesis/verify_genesis.py` and `emission/verify_emission.py`), the plain list of old test-network addresses (the programs contain only SHA-256 hashes of them, see `tools/make_hashed_module.py`), and the earlier test-network sources. So the scripts document and reproduce the transformation; without those private inputs they cannot be re-run end to end.