Zdrojový kód
Eddycoin je open source pod licencí MIT. Níže je kompletní zdrojový kód softwaru, na kterém běží živý mainnet eddycoin-mainnet-1: uzel, pool, explorer, CPU a GPU minery, peněženka s 24 slovy pro obnovu, genesis a podepsaná specifikace emise. Každý soubor si přečtete v prohlížeči, nebo si stáhněte archiv.
Download eddycoin-mainnet-source.zip 274 KB · 56 files · MIT License
SHA-256 of the zip: 8968e50135ba29e673af1043483e53a9d531da44b38b85ee97a7a7012e22f987
Procházení kódu
Kliknutím na soubor ho otevřete. Čísla řádků jsou odkazy; raw otevře čistý soubor. Váš prohlížeč každý soubor ověří proti SHA-256 v seznamu souborů. Začněte souborem README.md.
- LICENSE
- README.md
- SHA256SUMS
- emission/EMISSION.md
- emission/K120B_SPEC.md
- emission/emission-signing.pub
- emission/kompromis-120b.json
- emission/kompromis-120b.json.sha256
- emission/kompromis-120b.json.sig
- emission/tests/emission_fullsim.c
- emission/tests/test_emission_vs_c.py
- emission/verify_emission.py
- explorer/eddycoin_explorer.py
- genesis/emission-signing.pub
- genesis/genesis.json
- genesis/genesis.json.sha256
- genesis/genesis.json.sig
- genesis/verify_genesis.py
- miners/Start mining (CPU + GPU).cmd
- miners/build/Eddycoin CPU Miner.spec
- miners/build/Eddycoin GPU Miner.spec
- miners/eddycoin_chain.json
- miners/eddycoin_chain.py
- miners/eddycoin_dchain_gpu_miner.py
- miners/eddycoin_echain_cpu_miner.py
- miners/eddycoin_miner_defaults.json
- miners/eddycoin_miner_gui.py
- miners/eddycoin_old_keys.py
- miners/mac/Info.plist.in
- miners/mac/build_mac_apps.py
- miners/mac/eddycoin_mac_start.py
- miners/mac/launcher.sh.in
- miners/mac/make_runtime.py
- node/eddycoin_node.py
- pool/eddycoin_pool.py
- pool/pool.example.json
- release-tools/README.md
- release-tools/build_mainnet_release.py
- release-tools/build_pool_explorer.py
- release-tools/emission_artifact.py
- release-tools/make_genesis.py
- release-tools/patch_clients.py
- release-tools/patch_sources.py
- tools/exe_modules.py
- tools/make_hashed_module.py
- tools/patch_exe.py
- tools/verify_exes.py
- wallet/SEED_SPEC.md
- wallet/build/Eddycoin Wallet.spec
- wallet/eddycoin_chain.json
- wallet/eddycoin_chain.py
- wallet/eddycoin_old_keys.py
- wallet/eddycoin_seed.py
- wallet/eddycoin_wallet.py
- wallet/tests/bip39_vectors_official.json
- wallet/tests/test_seed.py
Prohlížeč souborů potřebuje JavaScript. Bez něj použijte odkazy vlevo (čistý text) nebo zip.
Ověřte si to sami
- Archiv: porovnejte SHA-256 výše a pak ověřte každý soubor uvnitř proti
SHA256SUMS.sha256sum eddycoin-mainnet-source.zip unzip eddycoin-mainnet-source.zip && cd eddycoin-mainnet-source sha256sum -c SHA256SUMS
- Genesis: checks the Ed25519 signature, the SHA-256, zero allocations, the cap, the emission spec hash and the genesis id, and compares with the seed node (Python 3.8+, no libraries).
python3 genesis/verify_genesis.py --online
- Emise: checks the signed spec and recomputes the whole 120-year schedule from the consensus constants.
python3 emission/verify_emission.py --dir emission
- Živý řetězec: let your own copy of the node re-validate every block, checkpoint and reward.
curl -o chain.json https://129-159-188-73.sslip.io/api/export python3 node/eddycoin_node.py --verify-file chain.json
- Programy v sekci Ke stažení: exe soubory pro Windows jsou sestavené nástrojem PyInstaller (Python 3.12) z těchto souborů. Sestavení PyInstalleru nejsou reprodukovatelná bajt po bajtu, takže hashe exe nejde přepočítat. Tento skript proto porovná kód Eddycoinu uvnitř každého exe (bytecode, všechny řetězce, čísla řádků) s tím, co Python 3.12 zkompiluje z tohoto zdroje, a u aplikace pro Mac porovná soubory
.pyfiles byte for byte:python3.12 tools/verify_exes.py FOLDER_WITH_THE_4_DOWNLOAD_ZIPS
Při zveřejnění se shodovalo všech 19 kontrol (CPU miner, GPU miner, peněženka, miner pro Mac). Přibalený runtime Pythonu a knihovny uvnitř exe jsou kód třetích stran a tato kontrola je neověřuje.
Ve zdrojovém kódu nejsou žádné soukromé klíče, hesla, tokeny, soubory peněženek ani konfigurace serverů. Podpisový klíč, peněženka poolu a přístupové údaje k serverům jsou záměrně soukromé. Co není zahrnuto a proč, popisuje README.md.
Parametry konsenzu mainnet
- Dva proof-of-work pruhy, oba dvojitý SHA-256: E-Chain (CPU) a D-Chain (GPU). Blok je platný, když jeho hash má aspoň
bitsúvodních nulových bitů (≈ 2^bits hashů na blok). - Checkpointy Y-Chainu: každý potřebuje přesně jeden E blok a jeden D blok pro stejného kandidáta na checkpoint; nese transakce a odměnu.
- Upgrade konsenzu uzlu 2.0.2, platí od checkpointu Y 880 (checkpointy pod 880 mají stará pravidla; zůstatky, adresy, těžaři i pool beze změny). Podrobnosti: komentář
2.0.2 CONSENSUS UPGRADEvnode/eddycoin_node.py. - Obtížnost se přepočítává zvlášť pro E a D každých 10 checkpointů – do Y 879 podle časů příchodu, 30 s na pruh, nejvýš 2 bity na krok (≈ 45–55 s na checkpoint); od Y 880 jemně podle časů v hlavičkách, 20 s na pruh ≈ 30 s na checkpoint; rozsah E 18–34, D 20–40 bitů; genesis E 27 / D 32 bitů.
- Odměna: Kompromis-120b, počítaná každým uzlem celočíselně; 50 % nálezci E bloku, 50 % nálezci D bloku (+ poplatky). Pevný strop 900 000 000 EDDY, 8 desetinných míst. Nulový premine, žádný faucet, žádná alokace v genesis.
- Transakce: UTXO, podpisy ECDSA P-256 s id řetězce
EDDY1v podepisované doméně, minimální poplatek 0,01 EDDY, nejvýš 40 transakcí na checkpoint. Adresa =eddy1+ 40 hexadecimálních znaků. - Čas bloku musí být po mediánu posledních 11 bloků pruhu; do Y 879 navíc do ±120 s od příchodu. Od Y 880 platí jen čas v hlavičce: nejvýš 15 s (těžař) / 30 s (peery) před hodinami uzlu; čas checkpointu = pozdější z časů bloku E a D.
- Volba větve: největší celková práce; od Y 880 se u checkpointu počítá slabší z obou pruhů (potřeba práce CPU i GPU). Finalita: pevně zapsané checkpointy každých 100 do Y 700 a žádné přepsání hlubší než 100 checkpointů (uzel 2.0.2).
Síť mainnetu živě
| Síť | eddycoin-mainnet-1 · id řetězce EDDY1 |
| Id genesis | f720818b202072d10b8b694d39eba3f17bb8a82d8597a92688057a5016f4746a |
| Čas genesis | 27. října 2026, 22:45:15 EDT (28. října 02:45:15 UTC) · nulový premine, žádné alokace |
| Soubory genesis | https://129-159-188-73.sslip.io/emission/genesis.json (+ .sha256, .sig) · API uzlu /api/genesis |
| SHA-256 souboru genesis.json | 980e4a20a507899699d614f5593b16900c6fbba471c2e1eccaddee862c5249bc |
| Uzel (seed, jen pro objevování) | https://129-159-188-73.sslip.io |
| Pool | https://pool.129-159-188-73.sslip.io (poplatek 2 %) |
| API exploreru | https://explorer.129-159-188-73.sslip.io/explorer/api/ |
| Výchozí port uzlu | 8773 |
Kontroluji živý uzel…
Návrh mainnetu – slova pro obnovu a bezpečnost živě
Shrnutí návrhu živého mainnetu eddycoin-mainnet-1.
Slova pro obnovu (specifikace peněženky)
- BIP39, 24 slov: 256 bitů entropie z operačního systému + 8bitový kontrolní součet SHA-256, z oficiálního anglického seznamu slov BIP39 (zabudovaný; SHA-256
2f5eed53a4727b4bf8880d8f3f199efc90e58503646d9ff8eff3a2ed3b24dbda, kontroluje se při startu programu). - Obnova přijímá přesně 24 slov (bez ohledu na velikost písmen, nadbytečné mezery se ignorují, přijímají se jednoznačné 4písmenné předpony); neznámá slova nebo chybný kontrolní součet jsou odmítnuty.
- Seed = PBKDF2-HMAC-SHA512(NFKD(slova), „mnemonic“ + NFKD(slovo navíc), 2048 iterací, 64 bajtů). Volitelné slovo navíc (passphrase BIP39) rozlišuje velikost písmen a nikdy se neukládá; jiné slovo navíc dá jinou, prázdnou peněženku.
- Klíče: SLIP-0010 pro křivku NIST P-256 (nist256p1), cesta
m/44'/3339'/0'/0/0. P-256 proto, že Eddycoin podepisuje pomocí P-256 (klíč secp256k1 by platné podpisy Eddycoinu nevytvořil). Adresa ="eddy1" + sha256("EDDY-ADDR|v1|" + public key hex)[:40]. - Soubor peněženky: stejný formát jako dříve (PBKDF2-SHA256 600 000 + AES-256-GCM); slova jsou uložená jen zašifrovaná (vlastní salt a nonce, svázané s adresou).
- Testy: oficiální testovací vektory BIP39 i SLIP-0010 P-256 všechny procházejí.
Bezpečnostní opatření
- Nová identita řetězce: síť
eddycoin-mainnet-1, id řetězceEDDY1, nové podpisové domény (podpis transakce obsahuje id řetězce, takže transakce z jiné sítě nelze přehrát). Genesis se zavazuje k síti, id řetězce a hashi specifikace emise. - Emise v konsenzu: každý uzel si odměnu každého checkpointu počítá sám celočíselně a chybné odměny odmítá; pevné kontroly stropu 900 000 000 EDDY; genesis nevytváří nic (nulový premine, nulová alokace).
- Zcela nové klíče: peněženka a minery mainnetu odmítají všechny klíče z doby před spuštěním; uzly se starým klíčem v konfiguraci nenastartují; staré adresy jsou na seznamu blokovaných.
- Žádné centrální řízení: žádný admin reset, žádný režim „následuj server“; peery z jiné sítě nebo s jiným genesis uzel odmítne a zablokuje; objevování peerů přes seznam seed uzlů, výměnu peerů a cache peerů.
- Tento web: jen statické soubory (žádná serverová logika), přísná Content Security Policy, HSTS, žádné cookies ani analytika, žádné soubory peněženek ani klíče na webu; čísla emise se zobrazí až po kontrole podpisu níže.
Specifikace emise – podepsaná, ověřitelná
Emisi mainnetu (Kompromis-120b) zveřejňuje uzel Eddycoinu jako podepsaný soubor. Web neukládá žádná čísla emise: váš prohlížeč specifikaci stáhne, ověří a teprve potom zobrazí.
Ověřuji specifikaci emise…
| Specifikace (JSON) | https://129-159-188-73.sslip.io/emission/kompromis-120b.json |
| SHA-256 | …/emission/kompromis-120b.json.sha256 |
| Podpis Ed25519 | …/emission/kompromis-120b.json.sig |
| Veřejný klíč | …/emission/emission-signing.pub |
| Otisk klíče | b62ce8abf98a9c3d2416bee74766ed4d847afb5f3a9cd999bf4f07c4f3d591a5 (SHA-256 surového 32bajtového klíče) |
| SHA-256 specifikace | 0a70d671ca52094d7eaa82c7b43122bce4f9bba1281f79d0ca1211b99c27cfb7 |
Ověřte si to sami (Python 3.8+, jen standardní knihovna): verify_emission.py · dokumentace: EMISSION.md · kopie na tomto webu: emission/
python3 verify_emission.py
Ověřovací soubory (kopie na tomto webu; autoritativní kopie jsou na uzlu Eddycoinu): kompromis-120b.json · .sha256 · .sig · emission-signing.pub · verify_emission.py · EMISSION.md · jak se čísla počítají: Emise
Podpis dokazuje, že soubor pochází od držitele emisního klíče a cestou nebyl změněn. Na mainnetu má vzorec zabudovaný každý uzel a SHA-256 specifikace je zapsaný v genesis (genesis.json, pole emission.spec_sha256), takže plán nejde změnit bez spuštění jiného řetězce. Stavový text v samotném souboru specifikace stále uvádí „planned“, protože soubor byl zmrazen před spuštěním; neupravuje se, protože jeho hash je uzamčen v genesis.
API uzlu mainnet
| Metoda | Cesta | Popis |
|---|---|---|
| GET | /api/state[?addr=] | souhrn řetězce, výšky, obtížnost, poslední bloky |
| GET | /api/wallet?addr=eddy1… | zůstatek a historie jedné adresy |
| GET | /api/block/E|D|Y/<height> | jeden blok / checkpoint |
| GET | /api/work?chain=E|D | práce pro minery (šablona hlavičky, bits) |
| POST | /api/submit/e, /api/submit/d | odeslání vyřešeného bloku |
| POST | /api/tx | odeslání podepsané transakce |
| GET | /api/genesis, /api/emission | genesis a specifikace emise |
| GET | /api/verify, /api/export | ověření celého řetězce, export řetězce (JSON) |
| GET | /api/peers, /api/node/info | info o uzlu, veřejné peery |
| GET | /api/node/checkpoints?from=&to=, /api/node/segment?from= | křížová kontrola checkpointů, synchronizace |
| POST | /api/node/push, /api/node/hello, /api/node/report | zprávy mezi uzly |
Základní URL seed uzlu: https://129-159-188-73.sslip.io. Platí limity požadavků na IP adresu.
Licence
Licence MIT – viz LICENSE. Software je poskytován „tak, jak je“, bez záruky. Eddycoin je experimentální projekt a neprošel auditem. Žádná hodnota, cena ani zisk se neslibuje.