灵符lingfu
L

ling-wallet

↓ 0 downloads

Ling Wallet: a post-quantum privacy-coin wallet, full node and HyperTorus miner for LNG

Windows · x86-64 ✕Linux · x86-64 ✕LingOS · x86-64LingOS · Pi 5 ARM64 ✕
Keywords wallet, cryptocurrency, lng, node, miner, ling
lingfu install ling-wallet
LicenseMIT
Authorsling-lin
READMECode / FilesVersionsDependency GraphDependentsSecurityBuildsSettings

Code / Files (116)

ling/core/params.ling
# params.ling — consensus constants (docs/DESIGN.md §7) and network
# parameters. Every amount, height and index fits exactly in a Ling number
# (all stay below 2^53); difficulties are decimal strings (big_* builtins).

bind COIN = 100000000
bind MONEY_SUPPLY = 2100000000000000
bind TAIL_REWARD = 30000000
bind EMISSION_DIV = 1048576

bind TARGET_BLOCK_SECS = 120
bind LWMA_WINDOW = 60
bind MEDIAN_WINDOW = 11
bind MAX_FUTURE_SECS = 7200
bind MAX_BLOCK_BYTES = 4194304
bind MAX_REORG_DEPTH = 720

# P2P anti-abuse (node.ling): a peer's messages of each kind are counted in a
# fixed window; over the limit, the message is dropped and a small penalty applied.
bind RATE_WINDOW_SECS = 10
bind MAX_RELAYS_PER_WINDOW = 200    # transactions + bundles relayed to us
bind MAX_GETS_PER_WINDOW = 100      # getids / getblocks requests served
# the address-bundle store is capped; the oldest rows are evicted past this.
bind MAX_BUNDLES = 20000

bind RING_SIZE = 11
bind MIN_OUTPUT_AGE = 10
bind COINBASE_MATURITY = 60
bind FEE_PER_BYTE = 10
bind TX_REF_WINDOW = 2160

bind MAX_TX_INPUTS = 32
bind MAX_TX_OUTPUTS = 64
bind MAX_EXTRA_BYTES = 256
bind MAX_RING = 64
bind MEMPOOL_EXPIRY_SECS = 259200

bind BLOCK_VERSION = 1
bind TX_VERSION = 1

# Byte lengths (DESIGN §4, §5.2)
bind PK_LEN = 2944
bind KI_LEN = 2944
bind KEM_CT_LEN = 1600
bind MEMO_LEN = 48
bind Z_LEN = 9600
bind HEADER_LEN = 90

# The network.
bind NET_NAME = "LNG mainnet"
bind NET_ID = 84
bind NET_MAGIC = "4c4e4774"
bind NET_PORT = 18780
bind GENESIS_TIMESTAMP = 1790000000
bind GENESIS_DIFFICULTY = "600"

# Tests may lower the starting difficulty (st_set("test_genesis_difficulty", "1")).
fn genesis_difficulty() {
    return st_get("test_genesis_difficulty", shared_get("test_genesis_difficulty", GENESIS_DIFFICULTY))
}
bind GENESIS_EXTRA = "LNG genesis: written in Ling"

# ML-DSA-87 public key of the seed authority (DESIGN §8.3). Seed
# lists signed by any other key are ignored.
bind SEED_AUTHORITY_HEX = "5ffbee159335dbb3a1bb85778b25e3a1bf38a31ee395f65bd2aa80d4c2d70e12c9495a29756269ff9c783bca817b75084bd9c3f665829d61ebdcdf14a5a3705df9f1bc48303953c5c819f82886d46917f7635c0a3545ae31622e8743d68c2b6cf5225e6b5c68941edf1de28444f9a763bb572367af1d19e6c18d60b3eec87c97e141d56c49f5e8e7a5078b0a757dae094260f8aea8d2fbf897353b1f443f47e401b50c90ad0034aac416833761a8f11dc1719eb4bff91619bcd720a78ef9432b53ea87efe1f4ca935a02117d2f40b3f48ba067dd647b04d72f4fe607b75302b091d3b8313ed7cb37db891dd06ed4d7765e7e3b1686a7b4cbd1a8d64a61cf2b4b44cf343751bcaab91f453674e4ff132661bf43f9070e15282d60c1bbf4cf9a9028441bbbf65e134084062a02e7d8616c9a2e36b42236d07be3491e69a7019a7b00e15fce22d3eee8f2fb57b8894a80b266056f69929cd1951ae508784877cec430f95c3ce9ee07c6cf277d335675a5e0526d68aabfec6c86bf43728520ae50eb27a244014bcab578a4605d9db6ce81a1f42f0877e755073f98e284b05a14f0ebd260df4a904cca169bd413dc3b0dff08a4aa3e9cb0ce87376efb34505fed94e04a6812fa8cae0c7cb4608819e8516dc86caf1f7274212a86028c8625503a6d3c7d02c8e26c889f9a7cc55ae4630842dbf344b57553538469510ee25a28f10b60cac125fe0d44feeae5c32592a146a6adebdeac4589c1dbac554d9026823f325f233198441e7e244f06a5337933da6a77aed127121dce8266501ad923e7aa9b82f8847b4d82dae0c0c5bfb4a8f60b706089ccb0883b85c43776aedc56dd36ac013e5daec2664f049a45dd04dad1b0e0c52a4891305c9715510575b30b1c2dddc9d14c9fcc84b69dbe9cd3f1c4814d6a8c1419645d53dac9974af9ecc4868b64f0ab4c88449e04289953a11d0289503241e9abca8b15ceba01f73030872f56a674640e3138e3e0cf9fe7288c3c933ef173f318384f98bde71a992f75660991b8554f32c974192965f571dce3fa84d0090162dae8545f98c0fd2f9b2d2c03aff693c60801e095af606d25d6ec3d7ce567007ccabb6280171ec05b2bf2524db17ee576b3e57d41417741b26eb806fdf5397c0443176a9c7cd51091ac377ea3f3b49af9b9aeb612a7984ea2724eb7c039a5e5b6751f4459a382367e3d06d944832ca97220f599be09fda6cd4e8495cb7f77e5a54c3d03858d98175c29c019250d1155421b6d03e8e1562e5e8e2ccbd7668a2a06f2ae285276f192c0fe33afb0610798aeb0a6c5a8cfbedac79c17ff5c83a4be28116901bbebafe4e28ee56b356c285cc547fc366426ee1c1f484c000a1e22cac15dc901b700ae6e54fea6fe52be2fd97b01689958794213db7f2155f55256dae75913faf61ae78889d855332479fb4989db4ca4bfa714018f1a9540f750a162879d937e1d9475a937ef70b8a46547f67fdad6bafe04030d99f4f7d93b79270881d3cf1d1cc656ada0044f5f7ecfcf7e4e4f505788a2868b08226475a1851bc2b44c0e9f0d6cc949b23ea60a9f902118360a2af876829c037fee04204087a7db8d52506f42ff50f2572c85c1d0305610ecbf4a9548b26cafcf9ac09dbe80f2828c05b9b3504766028b341a758ba5b4a5eef6379665b2c028528562ad69f7c663bc2f2d96d3619ad6d599bd93db40fda5c7053036661840e9c2d08a3a9e9d9583f8eb5330101d8d8153f55989f4c2b08e34ad4a6cf8ea0c4582b4952d3515a8a02fde7b89e53dd7232acd73e4ebe521ec2667de9989366f185c654c9e81bfdc98f98d2974171a8fcdd9fd94acdd729b315e783ebb4a770820f5a7d54b7e4b79e1e1c591d1237769634e54ec453a366b26ad992ac6903b1c043e20613971d3a18f5c3ecbfb769c7c9a7e786f7503c71da8c526883845d69d1832766b8830a3ed0e3c38157dfba89fdac1b274ee7cccd699bb27ed2d08da3ef41c2b230cfa442c70479774d7e14c8dae2e9dac463720f103ffb041f6604cbcc859d7a3dfc771999bf3591c4f7aa011fb3215de7bad02e3320671b54b818b25939831efa721d23f4d14020ccc555d631a229bce19d405e867a16ff7ba758698b39fc0adcfa10a284c390516c5a5262e3beacff772014aa526f7ab4d608ade372d314af9a3aa82258149e995ad7ca3b64221cfe814e1992480849b483ff3cfa5d88730925beb1a3d8ee635c49b5c6b5152096cdea7fe0e98e464911edec2a491f83a5b419d9600eaccb97a1f2c04205108c0d275d4274ba9c8eadf435a277d44b249058bd4a75f423b656b54cf9af25011e536b7fdf22b21ee15ee9619d5b536183bf98b3a7201fa5440427415633317de47bba9c6d07ec1479ca3c97e5fd8a6e7085d56cc1cef90890b95753e394c7f93d05e77cc911b240203e4fdfa157e49749dc5d0a40e84e306b290c84a5897db44c7ff04726ce47965ffd90ee1780bc077464687075b6a268a290fec988681a64ad22b8ca9b64b7ce5122157dc93a0f55944a8aea8e70bbaa2889f290a476c348a2094da359c75f43023afd1758aafafdd31e8af15b3092811a8220ea6e9428c97c3a7e60b431de5487c3dec3b9f016305efaeb532d6285e366570b2612e2c28a5566f1981fb7ca8638d9c7eb8c26f1a7db6acccf62a118d2c0bda49d39caffaa4c3d7e69509e8bc8225c35eb0aaa769ef93bf0d5e755d41cc6ae918f1206e12ffea33341a5907b3ce4b11ce3055409355acdf738360309c1392635285da6fae3d6e8a69b6e9f5458f4caf852410889a9a211f92d5fc821419451225cafc3a09ded54c09fd686e32edcb1e1606a9e80958f25ea3f963de97849df8aae22c6d82283c7bf403491186d1055f71794c67825e667958e83259a24d2a0dc8ee45c2fb127bc8566b33aae3aa0b10d64014f07867e8aff9c0841a91cfd893f15801df6a0fb1dbfa8659b527019efccc42d3c2f74041e519e39da4d77bf7679cf630a7f4eb9268e99cdb7fc4677378969e7d4814b44c384871c852833852ea7de408f8d91f8844430c902d922a84a91775cb2810ab39c6c743d83d102e7f62b891d2713b3ab4343fae57fea4cb9f3330ff88a39482f2717158e57cf131745d960d5c06a4b126c9a84582541348af49fe021dba42f6f7fbb228ee3d8f02db1cc70e148b2282f61aa32dbeb076b98e2f08772a2addd9b03d739124cd29e1d48c92bf3965fd991769a21d461b42d79c40af4aca8969d10700831246d3ece1654d85930f5781f83bfa9fa7f7eb325afd30317c88aa6f13785bf4a6df9e79c6b1b53a56cd4129defca61d66bc2db6a0b985058f740a1152e6028746962d1890b281f1d7e39fd7b97b29cdefb209d555cf473c66ac1f352de0280e5a116e5b4a73baefb9f0d97eb229ee2b046c28efebea5e1202405da0e8e98b619d0d294a98075a79808a5e4fd1d2d42d416d96786518bb12170de370ea3b1413698afa02aeb5f0678e1b1a8cdeb1d17e70614be2a853b88c380111f9fc20219ae5e0788edf0ece66e4fb8df729595e61f6f8d2eae47d0847b251784124421e72586cf80786f6d255063369d241c22c8279de7ee3ef0d5e4504a350597c28dec1467bf218c6e3e534d882f9c598037ffb62c64e310a"

fn seed_authority_hex() {
    return SEED_AUTHORITY_HEX
}

← Back to index