Page Not Found
Are you trying to visit broken links from old doc website?
From 79fa605b8b380543a899717bf4181737806f9f92 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 12:38:44 +0000 Subject: [PATCH] deploy: c2747b6800c53e338ca15b85b77cd3fa10a68956 --- 404.html | 6 +- assets/css/styles.22b4bed8.css | 1 - assets/css/styles.7a62cfd7.css | 1 + assets/js/17896441.42e6a557.js | 1 + assets/js/17896441.e236b039.js | 1 - ...4f307.9bd0214b.js => 1bd4f307.a1bf2bd1.js} | 2 +- ...93b7f.abae1908.js => 1df93b7f.b7288a4e.js} | 2 +- ...7ab3c.fb005066.js => 2247ab3c.ad5b333a.js} | 2 +- ...ecf53.ee7cbd31.js => 325ecf53.f35ec452.js} | 2 +- ...db7ed.21077410.js => 360db7ed.555a8f39.js} | 2 +- assets/js/3d7f047f.39dd8d67.js | 1 + ...5f356.d81054d5.js => 4145f356.4e6f7086.js} | 2 +- assets/js/424.d75c87bd.js | 1 + ...aab47.808867b2.js => 44baab47.7f86ed28.js} | 2 +- ...5b4ac.9676d666.js => 4a45b4ac.30dd3c94.js} | 2 +- ...e95c1.f52e93c8.js => 4dce95c1.778f8eeb.js} | 2 +- ...da744.f9b1a578.js => 54fda744.312003dc.js} | 2 +- ...f90bd.945d8144.js => 5dbf90bd.be63ad9b.js} | 2 +- ...7b1bc.3388f3ca.js => 5ee7b1bc.3c674928.js} | 2 +- ...c4dd6.fb371316.js => 631c4dd6.45a76bba.js} | 2 +- assets/js/65413b96.b07b637b.js | 1 + assets/js/682fa153.3f3c617d.js | 1 + assets/js/682fa153.712692bd.js | 1 - ...a886b.3a5db5b8.js => 690a886b.1d88a69d.js} | 2 +- assets/js/6c4d1ce4.2a25b2ac.js | 1 - assets/js/6c4d1ce4.511d37fd.js | 1 + assets/js/8fa65b9b.54dda381.js | 1 - assets/js/8fa65b9b.fc6feb2e.js | 1 + assets/js/935f2afb.8465bfb8.js | 1 - assets/js/935f2afb.d1af0839.js | 1 + assets/js/9a6c79a7.a50f64a6.js | 1 - assets/js/9a6c79a7.f731ae22.js | 1 + assets/js/9c63e866.37568838.js | 1 + assets/js/a205f28c.840ef738.js | 1 - assets/js/a205f28c.9ae846b7.js | 1 + assets/js/a824b7a4.cc0b4638.js | 1 + assets/js/b1c18118.a262dc00.js | 1 + ...ab648.ac0908f2.js => be8ab648.c3c6e502.js} | 2 +- assets/js/c279c4ab.1099f011.js | 1 - assets/js/c279c4ab.e32bc3b8.js | 1 + assets/js/d001ba2d.792f90bd.js | 1 - ...2e2a8.a383a182.js => d8a2e2a8.eeee6111.js} | 2 +- ...4a8bd.08ac44e5.js => e294a8bd.69c9892d.js} | 2 +- ...5a640.0f0fb28b.js => f855a640.333db3eb.js} | 2 +- assets/js/main.6a679006.js | 2 + ...CENSE.txt => main.6a679006.js.LICENSE.txt} | 0 assets/js/main.926e778e.js | 2 - assets/js/runtime~main.8eee3021.js | 1 - assets/js/runtime~main.c05d3063.js | 1 + docs/Node/index.html | 73 +------ docs/Node/run-mainnet-node/index.html | 39 ++++ docs/Node/run-public-rpc-node/index.html | 54 +++++ docs/Node/run-testnet-node/index.html | 40 ++++ .../common-script-error-code/index.html | 12 +- docs/Script/index.html | 10 +- docs/Script/intro-to-script/index.html | 12 +- docs/Script/js-script/index.html | 190 ++++++++++++++++++ docs/Script/minimal-script/index.html | 107 ++++++++++ .../program-language-for-script/index.html | 10 +- docs/Script/write-script/index.html | 106 ---------- docs/concepts/cell-model/index.html | 10 +- docs/concepts/ckb-vm/index.html | 10 +- docs/concepts/consensus/index.html | 10 +- docs/concepts/economics/index.html | 10 +- docs/concepts/glossary/index.html | 60 +++--- docs/concepts/index.html | 10 +- docs/concepts/nervos-blockchain/index.html | 10 +- docs/ecosystem/index.html | 10 +- docs/getting-started/create-dob/index.html | 38 ++-- docs/getting-started/create-token/index.html | 42 ++-- .../dev-environment/index.html | 56 +++--- docs/getting-started/devtool/index.html | 10 +- docs/getting-started/index.html | 14 +- docs/getting-started/transfer-ckb/index.html | 50 ++--- docs/getting-started/write-message/index.html | 42 ++-- docs/rpcs/index.html | 30 +-- docs/wallets/index.html | 10 +- homeContents/index.html | 6 +- index.html | 8 +- search-index-docs-default-current.json | 2 +- search/index.html | 6 +- sitemap.xml | 2 +- svg/icon-sidebar-resource.svg | 6 + 83 files changed, 728 insertions(+), 450 deletions(-) delete mode 100644 assets/css/styles.22b4bed8.css create mode 100644 assets/css/styles.7a62cfd7.css create mode 100644 assets/js/17896441.42e6a557.js delete mode 100644 assets/js/17896441.e236b039.js rename assets/js/{1bd4f307.9bd0214b.js => 1bd4f307.a1bf2bd1.js} (99%) rename assets/js/{1df93b7f.abae1908.js => 1df93b7f.b7288a4e.js} (54%) rename assets/js/{2247ab3c.fb005066.js => 2247ab3c.ad5b333a.js} (99%) rename assets/js/{325ecf53.ee7cbd31.js => 325ecf53.f35ec452.js} (99%) rename assets/js/{360db7ed.21077410.js => 360db7ed.555a8f39.js} (98%) create mode 100644 assets/js/3d7f047f.39dd8d67.js rename assets/js/{4145f356.d81054d5.js => 4145f356.4e6f7086.js} (98%) create mode 100644 assets/js/424.d75c87bd.js rename assets/js/{44baab47.808867b2.js => 44baab47.7f86ed28.js} (98%) rename assets/js/{4a45b4ac.9676d666.js => 4a45b4ac.30dd3c94.js} (99%) rename assets/js/{4dce95c1.f52e93c8.js => 4dce95c1.778f8eeb.js} (99%) rename assets/js/{54fda744.f9b1a578.js => 54fda744.312003dc.js} (98%) rename assets/js/{5dbf90bd.945d8144.js => 5dbf90bd.be63ad9b.js} (99%) rename assets/js/{5ee7b1bc.3388f3ca.js => 5ee7b1bc.3c674928.js} (99%) rename assets/js/{631c4dd6.fb371316.js => 631c4dd6.45a76bba.js} (97%) create mode 100644 assets/js/65413b96.b07b637b.js create mode 100644 assets/js/682fa153.3f3c617d.js delete mode 100644 assets/js/682fa153.712692bd.js rename assets/js/{690a886b.3a5db5b8.js => 690a886b.1d88a69d.js} (98%) delete mode 100644 assets/js/6c4d1ce4.2a25b2ac.js create mode 100644 assets/js/6c4d1ce4.511d37fd.js delete mode 100644 assets/js/8fa65b9b.54dda381.js create mode 100644 assets/js/8fa65b9b.fc6feb2e.js delete mode 100644 assets/js/935f2afb.8465bfb8.js create mode 100644 assets/js/935f2afb.d1af0839.js delete mode 100644 assets/js/9a6c79a7.a50f64a6.js create mode 100644 assets/js/9a6c79a7.f731ae22.js create mode 100644 assets/js/9c63e866.37568838.js delete mode 100644 assets/js/a205f28c.840ef738.js create mode 100644 assets/js/a205f28c.9ae846b7.js create mode 100644 assets/js/a824b7a4.cc0b4638.js create mode 100644 assets/js/b1c18118.a262dc00.js rename assets/js/{be8ab648.ac0908f2.js => be8ab648.c3c6e502.js} (98%) delete mode 100644 assets/js/c279c4ab.1099f011.js create mode 100644 assets/js/c279c4ab.e32bc3b8.js delete mode 100644 assets/js/d001ba2d.792f90bd.js rename assets/js/{d8a2e2a8.a383a182.js => d8a2e2a8.eeee6111.js} (99%) rename assets/js/{e294a8bd.08ac44e5.js => e294a8bd.69c9892d.js} (99%) rename assets/js/{f855a640.0f0fb28b.js => f855a640.333db3eb.js} (93%) create mode 100644 assets/js/main.6a679006.js rename assets/js/{main.926e778e.js.LICENSE.txt => main.6a679006.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.926e778e.js delete mode 100644 assets/js/runtime~main.8eee3021.js create mode 100644 assets/js/runtime~main.c05d3063.js create mode 100644 docs/Node/run-mainnet-node/index.html create mode 100644 docs/Node/run-public-rpc-node/index.html create mode 100644 docs/Node/run-testnet-node/index.html create mode 100644 docs/Script/js-script/index.html create mode 100644 docs/Script/minimal-script/index.html delete mode 100644 docs/Script/write-script/index.html create mode 100644 svg/icon-sidebar-resource.svg diff --git a/404.html b/404.html index 38cf648dc..2767cfe19 100644 --- a/404.html +++ b/404.html @@ -13,9 +13,9 @@ - - - + + +
Are you trying to visit broken links from old doc website?
block_version
",id:"block_version",level:3},{value:"See Also",id:"see-also-99",level:4},{value:"Cell Collection",id:"cell-collection",level:3},{value:"See Also",id:"see-also-100",level:4},{value:"Cellbase",id:"cellbase",level:3},{value:"See Also",id:"see-also-101",level:4},{value:"cellbase_maturity
",id:"cellbase_maturity",level:3},{value:"See Also",id:"see-also-102",level:4},{value:"cell_deps
",id:"cell_deps",level:3},{value:"See Also",id:"see-also-103",level:4},{value:"Ckbhash",id:"ckbhash",level:3},{value:"See Also",id:"see-also-104",level:4},{value:"CKB Merkle Tree",id:"ckb-merkle-tree",level:3},{value:"See Also",id:"see-also-105",level:4},{value:"Code Hash",id:"code-hash-1",level:3},{value:"See Also",id:"see-also-106",level:4},{value:"Commit",id:"commit-1",level:3},{value:"See Also",id:"see-also-107",level:4},{value:"Commitment Zone",id:"commitment-zone",level:3},{value:"See Also",id:"see-also-108",level:4},{value:"Consume",id:"consume-1",level:3},{value:"See Also",id:"see-also-109",level:4},{value:"Crypto Primitives",id:"crypto-primitives",level:3},{value:"See Also",id:"see-also-110",level:4},{value:"dao_type_hash
",id:"dao_type_hash",level:3},{value:"See Also",id:"see-also-111",level:4},{value:"Data",id:"data-1",level:3},{value:"See Also",id:"see-also-112",level:4},{value:"Dead Cell",id:"dead-cell",level:3},{value:"Synonyms",id:"synonyms-34",level:4},{value:"See Also",id:"see-also-113",level:4},{value:"Dep Group",id:"dep-group",level:3},{value:"See Also",id:"see-also-114",level:4},{value:"Dep Type",id:"dep-type",level:3},{value:"See Also",id:"see-also-115",level:4},{value:"Deps",id:"deps",level:3},{value:"Synonyms",id:"synonyms-35",level:4},{value:"Dependencies",id:"dependencies",level:3},{value:"Synonyms",id:"synonyms-36",level:4},{value:"See Also",id:"see-also-116",level:4},{value:"Duktape",id:"duktape",level:3},{value:"See Also",id:"see-also-117",level:4},{value:"Difficulty",id:"difficulty",level:3},{value:"See Also",id:"see-also-118",level:4},{value:"Diviner",id:"diviner",level:3},{value:"See Also",id:"see-also-119",level:4},{value:"Eaglesong",id:"eaglesong",level:3},{value:"See Also",id:"see-also-120",level:4},{value:"epoch_duration_target
",id:"epoch_duration_target",level:3},{value:"See Also",id:"see-also-121",level:4},{value:"ERC20",id:"erc20",level:3},{value:"See Also",id:"see-also-122",level:4},{value:"ERC721",id:"erc721",level:3},{value:"See Also",id:"see-also-123",level:4},{value:"ERC777",id:"erc777",level:3},{value:"See Also",id:"see-also-124",level:4},{value:"ERC1155",id:"erc1155",level:3},{value:"See Also",id:"see-also-125",level:4},{value:"Full Address",id:"full-address",level:3},{value:"See Also",id:"see-also-126",level:4},{value:"Generator",id:"generator",level:3},{value:"Genesis Block",id:"genesis-block",level:3},{value:"See Also",id:"see-also-127",level:4},{value:"genesis_hash
",id:"genesis_hash",level:3},{value:"See Also",id:"see-also-128",level:4},{value:"Godwoken",id:"godwoken",level:3},{value:"See Also",id:"see-also-129",level:4},{value:"Governance Script",id:"governance-script",level:3},{value:"See Also",id:"see-also-130",level:4},{value:"Governance Script Hash",id:"governance-script-hash",level:3},{value:"Synonyms",id:"synonyms-37",level:4},{value:"See Also",id:"see-also-131",level:4},{value:"Historical Cell",id:"historical-cell",level:3},{value:"Synonyms",id:"synonyms-38",level:4},{value:"See Also",id:"see-also-132",level:4},{value:"Inbound Connection",id:"inbound-connection",level:3},{value:"See Also",id:"see-also-133",level:4},{value:"Indexer",id:"indexer",level:3},{value:"See Also",id:"see-also-134",level:4},{value:"initial_primary_epoch_reward
",id:"initial_primary_epoch_reward",level:3},{value:"See Also",id:"see-also-135",level:4},{value:"Input",id:"input",level:3},{value:"See Also",id:"see-also-136",level:4},{value:"Keyper",id:"keyper",level:3},{value:"See Also",id:"see-also-137",level:4},{value:"Late Spawning",id:"late-spawning",level:3},{value:"See Also",id:"see-also-138",level:4},{value:"Layer 1",id:"layer-1",level:3},{value:"See Also",id:"see-also-139",level:4},{value:"Layer 2",id:"layer-2",level:3},{value:"See Also",id:"see-also-140",level:4},{value:"Lina",id:"lina",level:3},{value:"Synonyms",id:"synonyms-39",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-4",level:4},{value:"See Also",id:"see-also-141",level:4},{value:"Live Cell",id:"live-cell",level:3},{value:"Synonyms",id:"synonyms-40",level:4},{value:"See Also",id:"see-also-142",level:4},{value:"Lock",id:"lock",level:3},{value:"See Also",id:"see-also-143",level:4},{value:"Lock Script",id:"lock-script",level:3},{value:"See Also",id:"see-also-144",level:4},{value:"Lock Script Hash",id:"lock-script-hash",level:3},{value:"See Also",id:"see-also-145",level:4},{value:"Mainnet",id:"mainnet",level:3},{value:"Synonyms",id:"synonyms-41",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-5",level:4},{value:"max_block_bytes
",id:"max_block_bytes",level:3},{value:"max_block_cycles
",id:"max_block_cycles",level:3},{value:"See Also",id:"see-also-146",level:4},{value:"max_block_proposals_limit
",id:"max_block_proposals_limit",level:3},{value:"See Also",id:"see-also-147",level:4},{value:"max_uncles_num
",id:"max_uncles_num",level:3},{value:"See Also",id:"see-also-148",level:4},{value:"median_time_block_count
",id:"median_time_block_count",level:3},{value:"Minting",id:"minting",level:3},{value:"See Also",id:"see-also-149",level:4},{value:"Molecule",id:"molecule",level:3},{value:"See Also",id:"see-also-150",level:4},{value:"Muta",id:"muta",level:3},{value:"See Also",id:"see-also-151",level:4},{value:"Nervos CKB",id:"nervos-ckb",level:3},{value:"Synonyms",id:"synonyms-42",level:4},{value:"See Also",id:"see-also-152",level:4},{value:"Off-Chain Computation",id:"off-chain-computation",level:3},{value:"See Also",id:"see-also-153",level:4},{value:"Off-Chain Scaling",id:"off-chain-scaling",level:3},{value:"See Also",id:"see-also-154",level:4},{value:"Off-Chain State",id:"off-chain-state",level:3},{value:"See Also",id:"see-also-155",level:4},{value:"On-Chain Computation",id:"on-chain-computation",level:3},{value:"See Also",id:"see-also-156",level:4},{value:"On-Chain Scaling",id:"on-chain-scaling",level:3},{value:"See Also",id:"see-also-157",level:4},{value:"On-Chain State",id:"on-chain-state",level:3},{value:"See Also",id:"see-also-158",level:4},{value:"On-Chain Verification",id:"on-chain-verification",level:3},{value:"See Also",id:"see-also-159",level:4},{value:"Open Transaction",id:"open-transaction",level:3},{value:"See Also",id:"see-also-160",level:4},{value:"Optimistic Rollup",id:"optimistic-rollup",level:3},{value:"See Also",id:"see-also-161",level:4},{value:"Orphan",id:"orphan",level:3},{value:"Synonyms",id:"synonyms-43",level:4},{value:"Orphan Block",id:"orphan-block",level:3},{value:"Synonyms",id:"synonyms-44",level:4},{value:"See Also",id:"see-also-162",level:4},{value:"Orphan Rate",id:"orphan-rate",level:3},{value:"See Also",id:"see-also-163",level:4},{value:"orphan_rate_target
",id:"orphan_rate_target",level:3},{value:"See Also",id:"see-also-164",level:4},{value:"Orphan Transactions",id:"orphan-transactions",level:3},{value:"See Also",id:"see-also-165",level:4},{value:"Outbound Connection",id:"outbound-connection",level:3},{value:"See Also",id:"see-also-166",level:4},{value:"Outpoint",id:"outpoint",level:3},{value:"See Also",id:"see-also-167",level:4},{value:"Output",id:"output",level:3},{value:"See Also",id:"see-also-168",level:4},{value:"Overlord",id:"overlord",level:3},{value:"See Also",id:"see-also-169",level:4},{value:"P2WSH",id:"p2wsh",level:3},{value:"permanent_difficulty_in_dummy
",id:"permanent_difficulty_in_dummy",level:3},{value:"See Also",id:"see-also-170",level:4},{value:"Polyjuice",id:"polyjuice",level:3},{value:"See Also",id:"see-also-171",level:4},{value:"primary_epoch_reward_halving_interval
",id:"primary_epoch_reward_halving_interval",level:3},{value:"See Also",id:"see-also-172",level:4},{value:"Proposal Zone",id:"proposal-zone",level:3},{value:"See Also",id:"see-also-173",level:4},{value:"Propose",id:"propose",level:3},{value:"See Also",id:"see-also-174",level:4},{value:"proposer_reward_ratio
",id:"proposer_reward_ratio",level:3},{value:"See Also",id:"see-also-175",level:4},{value:"RISC-V",id:"risc-v",level:3},{value:"See Also",id:"see-also-176",level:4},{value:"Schnorr Signature",id:"schnorr-signature",level:3},{value:"See Also",id:"see-also-177",level:4},{value:"Script",id:"script",level:3},{value:"See Also",id:"see-also-178",level:4},{value:"secondary_epoch_reward
",id:"secondary_epoch_reward",level:3},{value:"See also",id:"see-also-179",level:4},{value:"secp256k1_blake160_sighash_all_type_hash
",id:"secp256k1_blake160_sighash_all_type_hash",level:3},{value:"secp256k1_blake160_multisig_all_type_hash
",id:"secp256k1_blake160_multisig_all_type_hash",level:3},{value:"Seed Cell",id:"seed-cell",level:3},{value:"See Also",id:"see-also-180",level:4},{value:"Shannon",id:"shannon",level:3},{value:"See Also",id:"see-also-181",level:4},{value:"Short Address",id:"short-address",level:3},{value:"Synonyms",id:"synonyms-45",level:4},{value:"See Also",id:"see-also-182",level:4},{value:"Simple UDT",id:"simple-udt",level:3},{value:"Synonyms",id:"synonyms-46",level:4},{value:"See Also",id:"see-also-183",level:4},{value:"Since",id:"since",level:3},{value:"See Also",id:"see-also-184",level:4},{value:"SPV",id:"spv",level:3},{value:"See Also",id:"see-also-185",level:4},{value:"SPV Wallet",id:"spv-wallet",level:3},{value:"See Also",id:"see-also-186",level:4},{value:"SUDT",id:"sudt",level:3},{value:"Synonyms",id:"synonyms-47",level:4},{value:"Testnet",id:"testnet",level:3},{value:"Synonyms",id:"synonyms-48",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-6",level:4},{value:"Transaction Confirmation Number",id:"transaction-confirmation-number",level:3},{value:"See Also",id:"see-also-187",level:4},{value:"Transaction Hash",id:"transaction-hash",level:3},{value:"See Also",id:"see-also-188",level:4},{value:"Transaction Witness Hash",id:"transaction-witness-hash",level:3},{value:"See Also",id:"see-also-189",level:4},{value:"Transaction Root",id:"transaction-root",level:3},{value:"See Also",id:"see-also-190",level:4},{value:"tx_proposal_window
",id:"tx_proposal_window",level:3},{value:"tx_version
",id:"tx_version",level:3},{value:"type_id
",id:"type_id",level:3},{value:"See Also",id:"see-also-191",level:4},{value:"type_id_code_hash
",id:"type_id_code_hash",level:3},{value:"See Also",id:"see-also-192",level:4},{value:"Type Script",id:"type-script",level:3},{value:"See Also",id:"see-also-193",level:4},{value:"Type Script Hash",id:"type-script-hash",level:3},{value:"See Also",id:"see-also-194",level:4},{value:"Uncle",id:"uncle",level:3},{value:"See Also",id:"see-also-195",level:4},{value:"Synonyms",id:"synonyms-49",level:4},{value:"See Also",id:"see-also-196",level:4},{value:"Uncle Rate",id:"uncle-rate",level:3},{value:"See Also",id:"see-also-197",level:4},{value:"Validator",id:"validator",level:3},{value:"See Also",id:"see-also-198",level:4},{value:"Witness",id:"witness",level:3},{value:"See Also",id:"see-also-199",level:4},{value:"XUDT",id:"xudt",level:3},{value:"See Also",id:"see-also-200",level:4},{value:"Zk-SNARK",id:"zk-snark",level:3},{value:"See Also",id:"see-also-201",level:4},{value:"Zk-STARK",id:"zk-stark",level:3},{value:"See Also",id:"see-also-202",level:4}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"glossary-sections",children:"Glossary Sections"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#general-glossary",children:"General Glossary"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#economics-glossary",children:"Economics Glossary"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#technical-glossary",children:"Technical Glossary"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"general-glossary",children:"General Glossary"}),"\n",(0,i.jsx)(n.h3,{id:"account",children:"Account"}),"\n",(0,i.jsx)(n.p,{children:"A kind of basic object in distributed ledger used to keep the balance and other information of users."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"address",children:"Address"}),"\n",(0,i.jsx)(n.p,{children:"A label consists of string of letters and numbers that anonymously represents user's identity on chain. Crypto assets can be sent to and/or from addresses."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#payment-address",children:"Payment Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"asset",children:"Asset"}),"\n",(0,i.jsx)(n.p,{children:"A piece of data that has value or that represents an entity having value."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-1",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block",children:"Block"}),"\n",(0,i.jsx)(n.p,{children:"A grouping of transactions, marked with a timestamp, and a fingerprint of the previous block. The block header is hashed to produce a proof of work, thereby validating the transactions. Valid blocks are added to the main blockchain by network consensus."}),"\n",(0,i.jsx)(n.h4,{id:"see-also",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-height",children:"Block Height"}),"\n",(0,i.jsx)(n.p,{children:"Block height is the total number of blocks that have been confirmed on the blockchain, also used to identify a unique block when specifying a particular block height, as there is always an exact block at any block height."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-2",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#height",children:"Height"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-1",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-interval",children:"Block Interval"}),"\n",(0,i.jsxs)(n.p,{children:["Also known as ",(0,i.jsx)(n.a,{href:"#block-time",children:"Block Time"}),". Block interval is the length of time it takes to create a new block in a cryptocurrency blockchain. Block interval is the measure of the time it takes the miners or validators within a network to verify transactions within one block and produce a new block in that blockchain. The block interval is variable on Nervos blockchain."]}),"\n",(0,i.jsx)(n.p,{children:"The block interval on the Bitcoin blockchain is approximately every 10 minutes. The block interval on Nervos is variable, but is usually under 10 seconds."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-3",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-time",children:"Block Time"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-2",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-propagation",children:"Block Propagation"}),"\n",(0,i.jsx)(n.p,{children:"The process of synchronizing a new block to the majority of full nodes in the network. Block propagation is a well-known bottleneck that prevents Bitcoin from scaling."}),"\n",(0,i.jsx)(n.p,{children:"Block propagation time is an average time that is needed for the new block to reach the majority of nodes in the network. Long block propagation delay reduces the node's resistance against 51% attacks."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-4",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#propagation",children:"Propagation"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-3",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#broadcast",children:"Broadcast"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-reward",children:"Block Reward"}),"\n",(0,i.jsx)(n.p,{children:"The amount of cryptocurrency credited to a miner's account after the miner successfully adds a block of transactions to the blockchain."}),"\n",(0,i.jsx)(n.p,{children:"In Nervos CKB, block rewards are the CKBytes credited to a miner's account after a block is successfully added to CKB by the miner."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-4",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-subsidy",children:"Block Subsidy"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-time",children:"Block Time"}),"\n",(0,i.jsxs)(n.p,{children:["Alternatively referred to as ",(0,i.jsx)(n.a,{href:"#block-interval",children:"Block Interval"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-5",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-interval",children:"Block Interval"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blockchain",children:"Blockchain"}),"\n",(0,i.jsx)(n.p,{children:"A data structure maintaining a growing list of records, organized as a chain of blocks. Each block, apart from the first one, is cryptographically linked to the previous block, thus creating a chain-like structure."}),"\n",(0,i.jsx)(n.p,{children:"The cryptographic link ensures any party with the last block can verify that none of the historical data is modified after the creation of this block."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-5",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"bls-signature",children:"BLS Signature"}),"\n",(0,i.jsx)(n.p,{children:"A cryptographic signature scheme for signing and verification. BLS is short for Boneh\u2013Lynn\u2013Shacham."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-6",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Boneh%E2%80%93Lynn%E2%80%93Shacham",children:"Boneh\u2013Lynn\u2013Shacham on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"broadcast",children:"Broadcast"}),"\n",(0,i.jsx)(n.p,{children:"Blocks are sent to all nodes in a blockchain network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-7",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"capacity",children:"Capacity"}),"\n",(0,i.jsx)(n.p,{children:"The maximum space (in bytes) that a Cell can occupy on the Nervos CKB."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-6",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-8",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell",children:"Cell"}),"\n",(0,i.jsx)(n.p,{children:"All data on Nervos CKB is stored in Cells. Cells are the primary state units in CKB, within them users can include arbitrary states."}),"\n",(0,i.jsxs)(n.p,{children:["A Cell has 4 fields: ",(0,i.jsx)(n.code,{children:"capacity"}),", ",(0,i.jsx)(n.code,{children:"data"}),", ",(0,i.jsx)(n.code,{children:"type"})," and ",(0,i.jsx)(n.code,{children:"lock"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-7",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#micro-state",children:"Micro-State"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-9",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#data",children:"Data"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock",children:"Lock"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/concepts/cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell-model",children:"Cell Model"}),"\n",(0,i.jsx)(n.p,{children:"A representation of how state is managed on Nervos CKB. The Cell Model is a more generic state model than either Bitcoin's UTXO or Ethereum's account model."}),"\n",(0,i.jsx)(n.p,{children:"The Cell Model is a new construction that combines many of the advantages of Ethereum's account model with the asset ownership and proof-based verification properties of Bitcoin's UTXO model."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-10",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/concepts/cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/https-medium-com-nervosnetwork-cell-model-7323fca57571",children:"Cell Model on the Nervos Blog"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"censorship-resistance",children:"Censorship Resistance"}),"\n",(0,i.jsx)(n.p,{children:"Censorship resistance in blockchain generally means that it is difficult for a malicious party to prevent the blockchain from confirming a set of transactions generated by honest users."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"chain",children:"Chain"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-8",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckb",children:"CKB"}),"\n",(0,i.jsx)(n.p,{children:"An abbreviation which can have different meanings depending on the context:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Common Knowledge Base - The layer 1 blockchain of the Nervos Network."}),"\n",(0,i.jsx)(n.li,{children:"Common Knowledge Byte - The native token of the Nervos Common Knowledge Base."}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-9",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckbyte",children:"CKByte"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for Common Knowledge Byte."}),"\n",(0,i.jsx)(n.p,{children:"CKByte is also sometimes shortened to CKB. Exchanges often use CKB as the ticker symbol."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-10",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckb-vm",children:"CKB-VM"}),"\n",(0,i.jsx)(n.p,{children:"CKB VM is a crypto-agnostic virtual machine, a RISC-V instruction set based VM for executing both on-chain and off-chain code."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-11",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"RISC-V"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Virtual_machine",children:"Virtual Machine on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"code-hash",children:"Code Hash"}),"\n",(0,i.jsx)(n.p,{children:"A field in a Cell which contains a hash value that can refer to a specific piece of data, or a specific Cell referenced by Type ID."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-12",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type_id",children:"Type ID"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cold-storage",children:"Cold Storage"}),"\n",(0,i.jsx)(n.p,{children:"A method of securing funds by placing them in a cold wallet; a type of wallet that is never connected to the internet."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-13",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-wallet",children:"Cold Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#hardware-wallet",children:"Hardware Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cold-wallet",children:"Cold Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A wallet that is used to secure assets offline. This wallet is permanently disconnected from the internet, and not vulnerable to attacks which rely on an active internet connection."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-14",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-storage",children:"Cold Storage"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit",children:"Commit"}),"\n",(0,i.jsxs)(n.p,{children:["Nervos CKB's consensus algorithm, ",(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})," consensus, has two phases: ",(0,i.jsx)(n.strong,{children:"propose"})," and ",(0,i.jsx)(n.strong,{children:"commit"}),". Commit is the process of including a valid proposed transaction into a new block."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-chain",children:"Commit-Chain"}),"\n",(0,i.jsx)(n.p,{children:"A scheme that enables the off-chain processing of transactions by one or more operators with on-chain state update commitments that do not contain per-transaction data."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-reward",children:"Commit Reward"}),"\n",(0,i.jsx)(n.p,{children:"A reward paid to miners in CKBytes on inclusion of previously proposed transactions."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"common-knowledge-base",children:"Common Knowledge Base"}),"\n",(0,i.jsx)(n.p,{children:"A layer 1 proof of work blockchain that provides a foundation of decentralized trust for the Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-11",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-1",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-15",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.nervos.org/ckb/",children:"Nervos CKB on Nervos.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"common-knowledge-byte",children:"Common Knowledge Byte"}),"\n",(0,i.jsx)(n.p,{children:"The native token of the Nervos layer 1 blockchain, the Common Knowledge Base."}),"\n",(0,i.jsx)(n.p,{children:"Common Knowledge Byte is often abbreviated as CKByte or CKB."}),"\n",(0,i.jsx)(n.p,{children:"Owning a CKByte entitles the holder to store one byte of data on the Nervos CKB blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-12",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-2",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-16",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#capacity",children:"Capacity"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#shannon",children:"Shannon"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"confirmation",children:"Confirmation"}),"\n",(0,i.jsx)(n.p,{children:"A process where a transaction has been accepted and verified by the network and included in a block."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-17",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#unconfirmed",children:"Unconfirmed"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"consensus",children:"Consensus"}),"\n",(0,i.jsx)(n.p,{children:"An algorithm executed among a number of distributed participants, ensuring that all participants faithfully executing this algorithm can reach agreement on some data value even if the other participants are faulty or malicious."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-18",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-MAX"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"consume",children:"Consume"}),"\n",(0,i.jsx)(n.p,{children:"The process of using a Live Cell as an input to a transaction. The consumption processes indicate that Live Cell turns into a Dead Cell."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"contract-account",children:"Contract Account"}),"\n",(0,i.jsx)(n.p,{children:"An account containing code that executes automatically whenever it receives an event from another account."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-19",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#account",children:"Account"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cryptocurrency",children:"Cryptocurrency"}),"\n",(0,i.jsx)(n.p,{children:"A cryptocurrency is a digital or virtual currency that is secured by blockchain and cryptography, which makes it nearly impossible to counterfeit or double-spend."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-20",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-currency",children:"Digital Currency"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fiat-currency",children:"Fiat Currency"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cryptographic-signature",children:"Cryptographic Signature"}),"\n",(0,i.jsx)(n.p,{children:"A concise piece of proof data. Cryptographic signature schemes are a fundamental component of cryptocurrency networks that verify the integrity and non-repudiation of transaction messages across the network."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-13",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#signature",children:"Signature"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cryptography",children:"Cryptography"}),"\n",(0,i.jsx)(n.p,{children:"Cryptography is the practice and study of techniques for secure communication in the presence of adversarial behavior."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-21",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cryptography",children:"Cryptography at Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cycles",children:"Cycles"}),"\n",(0,i.jsx)(n.p,{children:"The number of RISC-V computational cycles required by a script to execute. It's a metric used to prevent malicious behavior such as infinite loops, that's why it is called cycles."}),"\n",(0,i.jsx)(n.p,{children:"This is a similar concept to Ethereum's Gas, we set cycles to ensure optimal performance and security. Scripts must stay within cycle limits, otherwise the block will be rejected by CKB nodes."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-22",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://nervos-ckb-docs-git-v1-cryptape.vercel.app/docs/essays/faq/#estimate-cycles",children:"Estimate cycles"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#max_block_cycles",children:"Max_block_cycles"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0014-vm-cycle-limits/0014-vm-cycle-limits.md",children:"Rules for calculating cycles in RFC on Nervos Network Github"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"RISC-V"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://ethereum.org/en/glossary/#gas",children:"Ethereum's Gas"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dao",children:"DAO"}),"\n",(0,i.jsx)(n.p,{children:"A decentralized autonomous organization (DAO) is an organization represented by rules encoded as a computer program that is transparent, controlled by the organization members and not influenced by a centralized entity, in other words they are member-owned communities without centralized leadership. A DAO's financial transaction record and program rules are maintained on a blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-23",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Decentralized_autonomous_organization",children:"DAO on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dapp",children:"DApp"}),"\n",(0,i.jsx)(n.p,{children:"Decentralized application. At a minimum, it is a smart contract and a web user interface. In a broader sense, dApps are web applications that are built on top of open, decentralized, peer-to-peer infrastructure services. Additionally, many dApps include decentralized storage and/or a message protocol and platform."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"data",children:"Data"}),"\n",(0,i.jsxs)(n.p,{children:["In Cell Model, ",(0,i.jsx)(n.code,{children:"data"})," is a field in a Cell which can store arbitrary bytes."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-24",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"decentralization",children:"Decentralization"}),"\n",(0,i.jsx)(n.p,{children:"In blockchain, decentralization refers to the transfer of control and decision-making from a centralized entity (individual, organization, or group thereof) to a distributed network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-25",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#distributed",children:"Distributed"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Decentralization",children:"Decentralization on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"defi",children:"DeFi"}),"\n",(0,i.jsx)(n.p,{children:'Short for "decentralized finance", a broad category of dApps aiming to provide financial services backed by the blockchain, without any intermediaries, so anyone with an internet connection can participate.'}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"digital-asset",children:"Digital Asset"}),"\n",(0,i.jsx)(n.p,{children:"A digital asset is an individual piece of data that has value, or represents another entity that has value."}),"\n",(0,i.jsx)(n.p,{children:"Digital assets are most commonly represented as tokens, which may be used as digital currency or represent physical items such as real estate."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-14",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#asset",children:"Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"digital-currency",children:"Digital Currency"}),"\n",(0,i.jsx)(n.p,{children:"A type of currency that primarily exists digitally over the internet. Physical representations of the currency, in the form of cards, bills, or coins, may exist, but are secondary mediums."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-26",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptocurrency",children:"Cryptocurrency"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"distributed",children:"Distributed"}),"\n",(0,i.jsx)(n.p,{children:"A system where components are spread across multiple nodes to parallelize workloads, add redundancy, or eliminate single points of failure."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-27",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#decentralization",children:"Decentralization"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"digital-object-dob",children:"Digital Object (DOB)"}),"\n",(0,i.jsx)(n.p,{children:"A non-fungible encrypted asset with its content fully stored on-chain, establishing an intrinsic link between content and value."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-28",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible-Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"double-spending",children:"Double-Spending"}),"\n",(0,i.jsx)(n.p,{children:"Double-spending is the risk that a digital token is spent twice or more. In the context of blockchain, it happens when the transaction spending a digital token is cancelled after confirmation, and the same token is spent in another transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-29",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptocurrency",children:"Cryptocurrency"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"epoch",children:"Epoch"}),"\n",(0,i.jsx)(n.p,{children:"An epoch is a period of time for a set of blocks."}),"\n",(0,i.jsx)(n.p,{children:"In Nervos, the PoW difficulty changes on a new epoch. All the blocks in the same epoch share the same difficulty target. The difficulty adjustment algorithm aims to stabilize the orphan block rate at 2.5% and the epoch duration at 4 hours."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-30",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fee",children:"Fee"}),"\n",(0,i.jsxs)(n.p,{children:["The sender of a transaction often includes a fee to the network for processing the requested transaction. There's no minimum fee rate set in consensus, but there's a minimum fee rate 1,000 Shannons/KB in CKB's ",(0,i.jsx)(n.a,{href:"#p2p",children:"P2P"})," network. (1 Shannon = 10",(0,i.jsx)("sup",{children:"-8"})," CKB)"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-31",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#shannon",children:"Shannon"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fee-rate",children:"Fee rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/ckb/tree/develop/rpc#error-poolrejectedtransactionbyminfeerate",children:"Fee rate in RFC on Nervos Network Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fee-rate",children:"Fee Rate"}),"\n",(0,i.jsx)(n.p,{children:"A tip per byte that a user offers to the miners for including his transaction in a block on the blockchain."}),"\n",(0,i.jsxs)(n.p,{children:["This is a same concept to Bitcoin's ",(0,i.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/Miner_fees#Feerates",children:"Fee Rate(often spelled feerate)"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-32",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fee",children:"Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"first-class-assets",children:"First-Class Assets"}),"\n",(0,i.jsx)(n.p,{children:"Assets that 1. the asset itself (rather than a reference to the asset) can be passed directly in smart contract interactions, and 2. directly controlled by owners without any intermediaries."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-33",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/first-class-asset-ff4feaf370c4",children:"First-Class Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://talk.nervos.org/t/first-class-asset/1293",children:"Introduction to First-Class Asset"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fork",children:"Fork"}),"\n",(0,i.jsx)(n.p,{children:"A change in protocol causing the creation of an alternative chain, or a temporal divergence in two potential block paths during mining."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"full-node",children:"Full Node"}),"\n",(0,i.jsx)(n.p,{children:"A full node is an essential component of the CKB network. It stores and syncs the entire blockchain, verifies the validity of blocks and transactions, and enforces the network's consensus rules."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckb init --chain Mainnet && ckb run\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-34",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#light-node",children:"Light Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-node",children:"Mining Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"full-payload-format",children:"Full Payload Format"}),"\n",(0,i.jsxs)(n.p,{children:["The deprecated full payload format directly encodes all data field of lock script. The encode rule of deprecated full payload format is ",(0,i.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/Bech32",children:"Bech32"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-35",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fungible-token",children:"Fungible Token"}),"\n",(0,i.jsx)(n.p,{children:"A fungible token can be fiat currencies like the dollar or a cryptocurrency like Bitcoin."}),"\n",(0,i.jsx)(n.p,{children:"Fungible tokens or assets are divisible and non-unique."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-36",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"gas-limit",children:"Gas Limit"}),"\n",(0,i.jsx)(n.p,{children:"The maximum amount of gas a transaction or block may consume."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-37",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://ethereum.org/en/glossary/#gas",children:"Ethereum's Gas"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hard-fork",children:"Hard-Fork"}),"\n",(0,i.jsx)(n.p,{children:"A permanent divergence in the blockchain; also known as a hard-forking change. One commonly occurs when nonupgraded nodes can\u2019t validate blocks created by upgraded nodes that follow newer consensus rules. Not to be confused with a fork, soft fork, software fork, or Git fork."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hardware-wallet",children:"Hardware Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A hardware wallet is a form of cold wallet. A hardware wallet is a cryptocurrency wallet that stores the user's private keys (a critical piece of information used to authorize outgoing transactions on the blockchain network) in a secure hardware device."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-38",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-storage",children:"Cold Storage"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-wallet",children:"Cold Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hash",children:"Hash"}),"\n",(0,i.jsx)(n.p,{children:"A fixed-length fingerprint of variable-size input, produced by a hash function."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hash-rate",children:"Hash Rate"}),"\n",(0,i.jsx)(n.p,{children:'Hash rate is a measure of the computational power per second used when mining. These operations are known as "hashing".'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-39",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#network-hash-rate",children:"Network Hash Rate"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"height",children:"Height"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for block height."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-15",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-height",children:"Block Height"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"light-client",children:"Light Client"}),"\n",(0,i.jsx)(n.p,{children:"As a low-resource node, a light client allows users to sync with a blockchain in a cryptographically secure manner without having to store the whole blockchain."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"light-node",children:"Light Node"}),"\n",(0,i.jsx)(n.p,{children:"A light node downloads only the headers of the blockchain, conserving resources. It relies on other nodes for full transaction data and is a lightweight option for network participation."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckb-light-client run --config-file ./testnet.toml\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-40",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-node",children:"Mining Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mempool",children:"Mempool"}),"\n",(0,i.jsx)(n.p,{children:'Short for "memory pool". A waiting area on full nodes for transactions that have been broadcasted to the network but have not yet been confirmed on the blockchain.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-41",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"metadata",children:"Metadata"}),"\n",(0,i.jsxs)(n.p,{children:["Metadata is data that provides information about other data. ",(0,i.jsx)(n.code,{children:"capacity"}),", ",(0,i.jsx)(n.code,{children:"type"})," and ",(0,i.jsx)(n.code,{children:"lock"})," in Cells are metadata, they occupy Cell capacity and incur a state cost as well."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-42",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#capacity",children:"Capacity"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock",children:"Lock"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"micro-state",children:"Micro-State"}),"\n",(0,i.jsx)(n.p,{children:"A small piece of state that is isolated and often able to be acted upon independently without knowing the total state of the network."}),"\n",(0,i.jsx)(n.p,{children:"On Nervos, micro-state is represented by a Cell."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-16",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-43",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#state",children:"State"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"miner",children:"Miner"}),"\n",(0,i.jsx)(n.p,{children:"A network node that finds valid proof of work for new blocks, by repeated hashing."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-44",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"miner-fee",children:"Miner Fee"}),"\n",(0,i.jsx)(n.p,{children:"Another term for transaction fee."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-17",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-fee",children:"Transaction Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mining",children:"Mining"}),"\n",(0,i.jsx)(n.p,{children:"Mining is the process by which a blockchain node get new token reward by verifying new transactions, finding valid proof of work and creating new blocks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-45",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mining-node",children:"Mining Node"}),"\n",(0,i.jsx)(n.p,{children:"Mining nodes create new blocks by solving computational puzzles. They contribute to the network's security and consensus by actively validating and adding blocks to the blockchain."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckb init --chain Mainnet && ckb miner\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-46",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining",children:"Mining"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#light-node",children:"Light Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mining-reward",children:"Mining Reward"}),"\n",(0,i.jsx)(n.p,{children:"Native tokens paid to miners as a reward for providing the necessary computing resources for mining."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-47",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining",children:"Mining"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#native-token",children:"Native Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"multisig",children:"Multisig"}),"\n",(0,i.jsx)(n.p,{children:"The term multisig stands for multi-signature, which is a specific type of digital signatures that can be created through the combination of multiple unique signatures."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"native-token",children:"Native Token"}),"\n",(0,i.jsx)(n.p,{children:"The token issued as reward to a blockchain's consensus nodes. Nervos CKB's native token is CKByte."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-48",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nc-max",children:"NC-MAX"}),"\n",(0,i.jsx)(n.p,{children:"Nervos CKB's consensus algorithm, which follows NC's backbone protocol. The main innovation here is a two-step transaction confirmation mechanism"}),"\n",(0,i.jsx)(n.h4,{id:"see-also-49",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2020/1101",children:"NC-MAC"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"neighbor",children:"Neighbor"}),"\n",(0,i.jsx)(n.p,{children:"A node that is directly connected to another node in the blockchain peer to peer network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-50",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#peer-to-peer",children:"Peer to Peer"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nervos-blockchain",children:"Nervos Blockchain"}),"\n",(0,i.jsx)(n.p,{children:"The layer 1 blockchain of the Nervos Network known as the Common Knowledge Base."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-18",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nervos-dao",children:"Nervos DAO"}),"\n",(0,i.jsx)(n.p,{children:'Nervos DAO enable users to lock CKBytes to get compensation from Nervos CKB secondary issuance. This process is similar to staking on other platforms. Nervos DAO provides a "virtual hardcap" for CKByte holders to insulate them from inflation.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-51",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dao",children:"DAO"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/nervos-dao-explained-95e33898b1c",children:"Nervos DAO Explained on the Nervos Blog"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Nervos DAO in RFC on Nervos Network Github"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://explorer.nervos.org/charts/inflation-rate",children:"Inflation Rate Chart"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"network-hash-rate",children:"Network Hash Rate"}),"\n",(0,i.jsx)(n.p,{children:"A measurement of the total computational processing power which is dedicated to providing security to the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-52",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#hash-rate",children:"Hash Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"node",children:"Node"}),"\n",(0,i.jsx)(n.p,{children:"A software client that participates in the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-53",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#light-node",children:"Light Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-node",children:"Mining Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nonce",children:"Nonce"}),"\n",(0,i.jsx)(n.p,{children:"In cryptography, a value that can only be used once. Nonce can refer to two things in blockchain context: 1. a proof-of-work nonce is the random value in a block satisfying the proof of work requirement; 2. an account nonce is a transaction counter in each account, which is used to prevent replay attacks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-54",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"non-fungible-token",children:"Non-Fungible Token"}),"\n",(0,i.jsx)(n.p,{children:"Non-fungible tokens or NFTs are cryptographic assets on a blockchain with unique identification codes and metadata that distinguish them from each other."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-55",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-object-dob",children:"DOB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"open-source",children:"Open Source"}),"\n",(0,i.jsx)(n.p,{children:"A piece of software where source code is freely available for examination or alteration by any third-party."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-56",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://opensource.com/resources/what-open-source",children:"What is Open Source at OpenSource.com"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"p2p",children:"P2P"}),"\n",(0,i.jsx)(n.p,{children:"A shortname name for peer to peer."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-19",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#peer-to-peer",children:"Peer to Peer"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"paper-wallet",children:"Paper Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A form of storing a recovery phrase or private keys offline by printing them on a piece of paper. This document would then be stored by traditional means in a secured location of the user's choosing, such as a safe."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-57",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"payment-address",children:"Payment Address"}),"\n",(0,i.jsx)(n.p,{children:"A string of letters and numbers that cryptocurrency and assets can be sent to and from."}),"\n",(0,i.jsx)(n.p,{children:'Nervos CKB Mainnet addresses always begin with the prefix "ckb".'}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-20",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#address",children:"Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"payment-channel",children:"Payment Channel"}),"\n",(0,i.jsx)(n.p,{children:"A micropayment channel or payment channel is class of techniques designed to allow users to make multiple payment transactions without committing all of the transactions to the layer 1 blockchain. In a typical payment channel, only two transactions are added to the block chain but an unlimited or nearly unlimited number of payments can be made between the participants."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-58",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"peer-to-peer",children:"Peer to Peer"}),"\n",(0,i.jsx)(n.p,{children:"A peer-to-peer (P2P) service is a decentralized platform whereby two individuals interact directly with each other, without intermediation by a third party."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-21",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#p2p",children:"P2P"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-59",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"private-key",children:"Private Key"}),"\n",(0,i.jsx)(n.p,{children:"A private key, also known as a secret key, is a variable in cryptography, known only to the owner(s) of the key, that is used with an algorithm to encrypt and decrypt data."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-60",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#paper-wallet",children:"Paper Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#payment-address",children:"Payment Address"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proof-of-work",children:"Proof of Work"}),"\n",(0,i.jsx)(n.p,{children:"PoW asks users to solve a cryptographic puzzle to prove ownershipo of a certain amount of computational resource to participate in the consensus. In general PoW is a more permissionless consensus mechanism than PoS."}),"\n",(0,i.jsx)(n.p,{children:'In contrast to wildly spread misconception, PoW is not a "waste" of energy and does not induce more carbon emission. PoW is used in the Nervos layer 1 blockchain CKB.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-61",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-stake",children:"Proof of Stake"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proof-of-stake",children:"Proof of Stake"}),"\n",(0,i.jsx)(n.p,{children:"PoS asks users to prove ownership of a certain amount of cryptocurrency (their \u201cstake\u201d in the network) in order to be able to participate in the consensus. PoS relies on weak-subjectivity due to unsolvable issues like long-range attack. In PoS system the future consensus quorum is decided by existing participants completely. PoS is used in layer 2 protocols on Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-62",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"propagation",children:"Propagation"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for Block Propagation."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-22",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-propagation",children:"Block Propagation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"public-key",children:"Public Key"}),"\n",(0,i.jsx)(n.p,{children:"A notion used only in public-key cryptography, a.k.a. asymmetric cryptography. A public key is a piece of information that can be known to others without compromising security. Unique for each user, a public key is associated with a private key known only to the user. The public key can be used to encrypt a message so that it can only be decrypted with the corresponding private key, or to verify that a message is authorized by the user with the corresponding private key."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-63",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"reward",children:"Reward"}),"\n",(0,i.jsx)(n.p,{children:"An amount of CKBytes included in each new block as a reward by the network to the miner who found the proof-of-work solution."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-64",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-reward",children:"Base Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-reward",children:"Block Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commit-reward",children:"Commit Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-reward",children:"Proposal Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"signature",children:"Signature"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for cryptographic signature."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-23",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptographic-signature",children:"Cryptographic Signature"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"smart-contract",children:"Smart Contract"}),"\n",(0,i.jsx)(n.p,{children:"A smart contract is a self-executing contract with the terms of the agreement between contract creators and contract users being directly written into lines of code. The code and the agreements contained therein exist across a distributed, decentralized blockchain network. Also known as script on Nervos CKB."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state",children:"State"}),"\n",(0,i.jsx)(n.p,{children:"Data stored on the blockchain. In most contexts this this means current data and excludes historical data."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-65",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state-bloat",children:"State Bloat"}),"\n",(0,i.jsx)(n.p,{children:"The unlimited increase of state data in Ethereum. State bloat slows down node synchronization, raises the barrier of full node, thus hurts network decentralization."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state-channel",children:"State Channel"}),"\n",(0,i.jsx)(n.p,{children:"A layer 2 solution where a channel is set up between participants, where they can transact freely and cheaply. Only a transaction to set up the channel and close the channel is sent to Mainnet. This allows for very high transaction throughput, but does rely on knowing number of participants up front and locking up of funds."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tip",children:"Tip"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for tip block."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-24",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tip-block",children:"Tip Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tip-block",children:"Tip Block"}),"\n",(0,i.jsx)(n.p,{children:"The most recent block to be confirmed in a blockchain. The tip block has the highest block height in the blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-25",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tip",children:"Tip"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-66",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-height",children:"Block Height"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction",children:"Transaction"}),"\n",(0,i.jsx)(n.p,{children:"Transaction is the basic object created and signed by users to interact with distributed ledger. Transactions update ledger state at users requests. A CKB transaction destroys some outputs created in previous transactions and creates some new outputs. We call the transaction output a Cell in CKB."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-67",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-fee",children:"Transaction Fee"}),"\n",(0,i.jsx)(n.p,{children:"A fee which is paid in the native token to miners in exchange for processing a transaction."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-26",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner-fee",children:"Miner Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-68",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#native-token",children:"Native Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"token",children:"Token"}),"\n",(0,i.jsx)(n.p,{children:"A \u201ctoken\u201d often refers to non-native token on smart contract platform, such as UDT on Nervos Network or ERC20 on Ethereum."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-69",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"turing-complete",children:"Turing Complete"}),"\n",(0,i.jsx)(n.p,{children:"Turing Complete refers to a machine that, given enough time and memory along with the necessary instructions, can solve any computational problem, no matter how complex. The term is normally used to describe modern programming languages as most of them are Turing Complete (C++, Python, JavaScript, etc.)."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"udt",children:"UDT"}),"\n",(0,i.jsx)(n.p,{children:"Short for User-Defined Token, a customised token created with properties defined by the user. In normal usage, this most commonly refers to fungible tokens."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-27",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"unconfirmed",children:"Unconfirmed"}),"\n",(0,i.jsx)(n.p,{children:"The state of a transaction that has not yet been confirmed. An unconfirmed transaction is not finalized and cannot be guaranteed."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-28",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#unconfirmed-transaction",children:"Unconfirmed Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-70",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"unconfirmed-transaction",children:"Unconfirmed Transaction"}),"\n",(0,i.jsx)(n.p,{children:"A transaction that has not yet been confirmed. An unconfirmed transaction is not finalized and cannot be guaranteed."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-29",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#unconfirmed",children:"Unconfirmed"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-71",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"user-defined-token",children:"User-Defined Token"}),"\n",(0,i.jsx)(n.p,{children:"A custom token created with properties defined by the user. In normal usage, this most commonly refers to fungible tokens."}),"\n",(0,i.jsx)(n.p,{children:"A User-Defined Token is usually referred to by its abbreviation, UDT."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-30",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-72",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-20",children:"ERC20 on Ethereum.org"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-777",children:"ERC777 on Ethereum.org"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://talk.nervos.org/t/rfc-simple-udt-draft-spec/4333",children:"Simple UDT Draft Spec on Nervos Talk"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"wallet",children:"Wallet"}),"\n",(0,i.jsx)(n.p,{children:"User-facing software used to interact with on-chain entities such as assets, smart contracts and dApps. A wallet can include key management itself or delegate key management to external hardware for improved security."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-73",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#paper-wallet",children:"Paper Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#payment-address",children:"Payment Address"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"economics-glossary",children:"Economics Glossary"}),"\n",(0,i.jsx)(n.h3,{id:"base-issuance",children:"Base Issuance"}),"\n",(0,i.jsx)(n.p,{children:"Base issuance is the basic CKByte issuance with a fixed and decreasing schedule. Base issuance is awarded to miners as incentives to protect the network and also as an indirect token distribution method."}),"\n",(0,i.jsx)(n.p,{children:"Base issuance is limited to a finite total supply 33.6G (33.6 billion) CKBytes."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-74",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-reward",children:"Base Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"base-reward",children:"Base Reward"}),"\n",(0,i.jsx)(n.p,{children:"Base reward is the block reward (in CKBytes) to miners generated from the base issuance. Base reward halves approximately every 4 years until eventually reaching 0, like Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-75",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-issuance",children:"Base Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-reward-1",children:"Commit Reward"}),"\n",(0,i.jsx)(n.p,{children:"A reward paid to miners in CKBytes for committing a previously proposed transaction. After the transaction has been committed it is confirmed."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-76",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"economic-abstraction",children:"Economic Abstraction"}),"\n",(0,i.jsx)(n.p,{children:'With proper tool support, users can use tokens other than CKByte (for example, stable coins) to pay transactions fees, a concept known as "Economic Abstraction".'}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fiat-currency",children:"Fiat Currency"}),"\n",(0,i.jsx)(n.p,{children:"Fiat currencies are a medium of exchange established as money, often by government regulation. Fiat money does not have intrinsic value and does not have use value. It has value only because a government maintains its value, or because parties engaging in exchange agree on its value."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-77",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptocurrency",children:"Cryptocurrency"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-currency",children:"Digital Currency"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"heavy-asset-problem",children:"Heavy Asset Problem"}),"\n",(0,i.jsx)(n.p,{children:"A common problem found in multi-asset blockchain platforms where the value of the assets stored on the chain gains significant value but the native token of the chain does not. This raises the incentive to attack the network, but does not increase the security because the value of the native token is what is used to secure the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-78",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#asset",children:"Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#starving-layer-1-problem",children:"Starving Layer 1 Problem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"liquidity",children:"Liquidity"}),"\n",(0,i.jsx)(n.p,{children:"The ability for an asset to be bought or sold easily without causing a significant change in the current market price."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-79",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#asset",children:"Asset"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proposal-reward",children:"Proposal Reward"}),"\n",(0,i.jsx)(n.p,{children:"A reward paid to miners in CKBytes for proposing an unconfirmed transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-80",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secondary-issuance",children:"Secondary Issuance"}),"\n",(0,i.jsx)(n.p,{children:"The creation of new CKBytes that is paid to miners through secondary rewards. Secondary issuance follows a fixed inflation schedule of 1.344 billion CKBytes per year. Nervos DAO stakers are not affected by secondary issuance."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-81",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-issuance",children:"Base Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-dao",children:"Nervos DAO"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#state",children:"State"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secondary-reward",children:"Secondary Reward"}),"\n",(0,i.jsx)(n.p,{children:"A subsidy paid to miners in CKBytes for providing the compute and storage requirements required for processing transactions and persisting data on Nervos."}),"\n",(0,i.jsx)(n.p,{children:"Secondary rewards are created from secondary issuance, and continuously pay miners for the verification of transactions and preservation of blockchain state."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-82",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"selfish-mining-attack",children:"Selfish Mining Attack"}),"\n",(0,i.jsx)(n.p,{children:"Selfish mining is a concept that was addressed by Cornell University researchers in detail in a 2013 report. In this attack, malicious miners gain unfair block rewards by deliberately orphaning blocks mined by others."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-83",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.cs.cornell.edu/~ie53/publications/btcProcFC.pdf",children:"Selfish Mining Related Paper"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"starving-layer-1-problem",children:"Starving Layer 1 Problem"}),"\n",(0,i.jsx)(n.p,{children:"A scenario that can arise in multi-layer blockchain platforms where the vast majority of the transaction traffic moves from layer 1 to layer 2, taking the vast majority of transaction fees with it. If layer 1 relies exclusively on transaction fees to support the security of the platform, it may end up not having enough incentives available to properly secure it."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-84",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#heavy-asset-problem",children:"Heavy Asset Problem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-fee",children:"Transaction Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state-rent",children:"State Rent"}),"\n",(0,i.jsx)(n.p,{children:"A recurring fee that is paid to persist and secure state data."}),"\n",(0,i.jsx)(n.p,{children:"On Nervos, secondary issuance is used to boost the payment of state rent by users who occupy space on the Nervos blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-85",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"store-of-assets",children:"Store of Assets"}),"\n",(0,i.jsx)(n.p,{children:'Similar to the concept of "Store of Value" in the context of Bitcoin, we call the utility "Store of Assets" when a blockchain keeps any crypto-assets securely and censorship-resistantly. Nervos CKB is such a Store of Assets or SoA.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-86",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#store-of-value",children:"Store of Value"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"store-of-value",children:"Store of Value"}),"\n",(0,i.jsx)(n.p,{children:"Assets which can maintain their worth over time without depreciating"}),"\n",(0,i.jsx)(n.p,{children:"A good store of value either match or outpace the inflation rate of fiat currency, and has a reasonable amount of liquidity, allowing the asset to be easily sold."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-87",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#store-of-assets",children:"Store of Assets"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#liquidity",children:"Liquidity"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tail-emission",children:"Tail Emission"}),"\n",(0,i.jsx)(n.p,{children:"A type of reward that is paid to miners through a fixed amount of inflation."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-88",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"targeted-inflation",children:"Targeted Inflation"}),"\n",(0,i.jsx)(n.p,{children:"A form of inflation that only affects a specific subset of users."}),"\n",(0,i.jsx)(n.p,{children:"Nervos uses Secondary Issuance to create targeted inflation on users who occupy space on the Nervos blockchain to pay State Rent. Long-term holders of CKBytes have the option of locking them in the Nervos DAO, which acts and an inflation shelter."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-89",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-dao",children:"Nervos DAO"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tragedy-of-the-commons",children:"Tragedy of the Commons"}),"\n",(0,i.jsx)(n.p,{children:"A situation in a system where the participants act in accordance with their own self interest and deplete or destroy a shared resource through their collective action."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-90",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-storage-commons",children:"Tragedy of the Storage Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"}),"\n",(0,i.jsx)(n.p,{children:'A situation that can emerge on multi-asset blockchain platforms where asset tokens rely on the storage and security of the blockchain platform, but do not contribute back to the platform. As the number of assets that "ride for free" increases, so does the burden placed on the underlying blockchain platform. If the assets do not contribute to the underlying platform, the available security may not properly support the network.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-91",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#heavy-asset-problem",children:"Heavy Asset Problem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-commons",children:"Tragedy of the Commons"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-storage-commons",children:"Tragedy of the Storage Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tragedy-of-the-storage-commons",children:"Tragedy of the Storage Commons"}),"\n",(0,i.jsx)(n.p,{children:"A situation that can emerge on incentivized blockchain platforms where mining rewards are paid for inclusion of data to the blockchain, but no rewards exist for the long-term persistence of the blockchain data. As the size of the chain grows, so do the costs associated with persisting the data. If there is no direct incentive for persisting data, fewer and fewer nodes will do so. Eventually, too few nodes will be available to properly support the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-92",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-commons",children:"Tragedy of the Commons"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"technical-glossary",children:"Technical Glossary"}),"\n",(0,i.jsx)(n.h3,{id:"active-cell",children:"Active Cell"}),"\n",(0,i.jsx)(n.p,{children:"Or Live Cell, a Cell exists in the current CKB state. Only active Cells can be used as inputs to new transactions."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-31",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-93",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#input",children:"Input"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"aggron",children:"Aggron"}),"\n",(0,i.jsx)(n.p,{children:"The first Nervos CKB Testnet corresponding to Mainnet Lina."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"CKB version"}),": >= v0.101.0 (latest stable is recommended)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Genesis hash"}),": 0x10639e0895502b5688a6be8cf69460d76541bfa4821629d86d62ba0aae3f9606"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Init command"}),": ",(0,i.jsx)(n.code,{children:"ckb init --chain testnet"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Launched at"}),": 2020-05-22 04:00:00 UTC"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ckb2021 activated at"}),": 2021-10-24 03:00:00 UTC"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-32",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#testnet",children:"Testnet"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-3",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lina",children:"Lina"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"animagus",children:"Animagus"}),"\n",(0,i.jsx)(n.p,{children:"A framework layer that runs on top of Nervos CKB which provides an easy way to query for account balances without having to go through the Cell collection process."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-94",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-collection",children:"Cell Collection"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/https-medium-com-nervosnetwork-animagus-part-1-introduction-66fa8ce27ccd-cfb361a7d883",children:"Animagus Introduction on the Nervos Blog"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"args",children:"Args"}),"\n",(0,i.jsx)(n.p,{children:"Args is short for arguments. Arguments are data provided to the lock script or type script of a Cell, similar to args provided to a function or method call."}),"\n",(0,i.jsx)(n.p,{children:"Arguments are stored as part of the Cell when it is created."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-95",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"axon",children:"Axon"}),"\n",(0,i.jsx)(n.p,{children:"Axon is a chain-based layer 2 protocol and framework with a practical security and economic model. Axon chains allow anyone to stake tokens on CKB to become a validator and participate in consensus."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-96",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blake2b",children:"Blake2b"}),"\n",(0,i.jsx)(n.p,{children:"A cryptographic hash function. BLAKE2b (or BLAKE2) is optimized for 64-bit platforms including NEON-enabled ARMs and produces digests of any size between 1 and 64 bytes. BLAKE2b is optimized for 8- to 32-bit platforms, and produces digests of any size between 1 and 32 bytes. CKB uses BLAKE2b as the default hash algorithm."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-97",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://blake2.net/blake2.pdf",children:"Blake2b paper"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/BLAKE_(hash_function)",children:"Blake Hash Function on Wikipedia"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Hash_function",children:"Hash Function on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-subsidy",children:"Block Subsidy"}),"\n",(0,i.jsx)(n.p,{children:"A payment that is made in the native currency of the blockchain that is paid to miners for providing the computational resources create a block and secure the blockchain."}),"\n",(0,i.jsx)(n.p,{children:"The subsidy consists is the portion of the total block reward that is issued out of inflation for creating the block, but does not include any additional transaction fees that may be paid on top."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-33",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-reward",children:"Block Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-fee",children:"Transaction Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"boxer",children:"Boxer"}),"\n",(0,i.jsx)(n.p,{children:"A lightweight Rust library for verifying the Nervos layer 1 blockchain, the Common Knowledge Base."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-98",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/xxuejie/ckb-boxer",children:"Boxer on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block_version",children:(0,i.jsx)(n.code,{children:"block_version"})}),"\n",(0,i.jsx)(n.p,{children:"Version of a block. This field is reserved for the system, set to 0 by default."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub const BLOCK_VERSION: Version = 0;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-99",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell-collection",children:"Cell Collection"}),"\n",(0,i.jsx)(n.p,{children:"The process of gathering Cells that meet certain criteria."}),"\n",(0,i.jsx)(n.p,{children:"For example: To find the balance of a particular account, all active Cells for the address would need to be collected."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-100",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cellbase",children:"Cellbase"}),"\n",(0,i.jsx)(n.p,{children:"The transaction in each block that is responsible for the minting of new CKBytes."}),"\n",(0,i.jsx)(n.p,{children:"This is the equivalent of a coinbase transaction in Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-101",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"Coinbase on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cellbase_maturity",children:(0,i.jsx)(n.code,{children:"cellbase_maturity"})}),"\n",(0,i.jsx)(n.p,{children:'Any referenced cellbase output must meet this requirement in a transaction; otherwise, the transaction is rejected. Cellbase outputs are "locked" and have to wait for 4 epochs (approximately 16 hours) to be confirmed before they become ready to be spent. This restriction is to avoid the risk of later transactions with cellbase root being rollbacked when a soft fork occurs.'}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const CELLBASE_MATURITY: EpochNumberWithFraction =\nEpochNumberWithFraction::new_unchecked(4, 0, 1);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-102",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cellbase",children:"Cellbase"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell_deps",children:(0,i.jsx)(n.code,{children:"cell_deps"})}),"\n",(0,i.jsx)(n.p,{children:"Pointers to Live Cells on the chain that allow scripts in the transaction to access (read-only) referenced Live Cells."}),"\n",(0,i.jsxs)(n.p,{children:["Find more in the essay ",(0,i.jsx)(n.a,{href:"https://nervos-ckb-docs-git-v1-cryptape.vercel.app/docs/essays/dependencies/#how-dependencies-work",children:"Script dependencies"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-103",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckbhash",children:"Ckbhash"}),"\n",(0,i.jsx)(n.p,{children:"CKB uses blake2b as the default hash algorithm with the following configurations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["output digest size in bytes: ",(0,i.jsx)(n.code,{children:"32"})]}),"\n",(0,i.jsxs)(n.li,{children:["personalization: ",(0,i.jsx)(n.code,{children:"ckb-default-hash"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ckbhash"})," is used to denote the blake2b hash with the configurations above, there are example and test vectors in python 3:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"import hashlib\nimport unittest\n\ndef ckbhash():\n return hashlib.blake2b(digest_size=32, person=b'ckb-default-hash')\n\nclass TestCKBBlake2b(unittest.TestCase):\n\n def test_empty_message(self):\n hasher = ckbhash()\n hasher.update(b'')\n self.assertEqual('44f4c69744d5f8c55d642062949dcae49bc4e7ef43d388c5a12f42b5633d163e', hasher.hexdigest())\n\nif __name__ == '__main__':\n unittest.main()\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-104",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blake2b",children:"Blake2b"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckb-merkle-tree",children:"CKB Merkle Tree"}),"\n",(0,i.jsxs)(n.p,{children:["CKB Merkle Tree is a CBMT( ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0006-merkle-tree/0006-merkle-tree.md#complete-binary-merkle-tree",children:"Complete Binary Merkle Tree"})," ) using following merge function:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckbhash(left || right)\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ckbhash"})," is the hash function, ",(0,i.jsx)(n.code,{children:"||"})," denotes binary concatenation."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-105",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0006-merkle-tree/0006-merkle-tree.md",children:"Merkle Tree for Static Data"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Merkle_tree",children:"Merkle Tree on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"code-hash-1",children:"Code Hash"}),"\n",(0,i.jsx)(n.p,{children:"A field in a Cell that contains a hash value which could refer to a specific piece of data, or a specific Cell referenced by Type ID."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-106",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#data",children:"Data"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type_id",children:"Type ID"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-1",children:"Commit"}),"\n",(0,i.jsx)(n.p,{children:"The process of taking a proposed transaction and adding it to the blockchain. After the transaction has been committed it is confirmed."}),"\n",(0,i.jsx)(n.p,{children:"Miners are incentivized to commit transactions by being paid a commit reward."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-107",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commit-reward",children:"Commit Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#propose",children:"Propose"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commitment-zone",children:"Commitment Zone"}),"\n",(0,i.jsx)(n.p,{children:"Section of the block that contains transaction commitments. The commitment zone can only contain valid transactions which have appeared in the proposal zone of one of the previous 2 to 10 blocks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-108",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-zone",children:"Proposal Zone"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"consume-1",children:"Consume"}),"\n",(0,i.jsx)(n.p,{children:"The process of using a Live Cell as an input to a transaction."}),"\n",(0,i.jsx)(n.p,{children:"The process of consumption marks the Live Cell as a Dead Cell. This is the equivalent of marking a UTXO as spent in Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-109",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"crypto-primitives",children:"Crypto Primitives"}),"\n",(0,i.jsx)(n.p,{children:"Well-established, low-level cryptographic algorithm commonly used to build out a cryptographic protocol."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-110",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cryptographic_primitive",children:"Cryptographic Primitive on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dao_type_hash",children:(0,i.jsx)(n.code,{children:"dao_type_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["NervosDAO\u2019s ",(0,i.jsx)(n.code,{children:"type_hash"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Find more in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#ckb-genesis-script-list",children:"CKB Genesis Script List"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-111",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script-hash",children:"Type Script Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"data-1",children:"Data"}),"\n",(0,i.jsx)(n.p,{children:"In Nervos specific contexts, data may refer to the data structure within a Cell. This structure is used to hold any form of information that needs to be stored on the Nervos blockchain."}),"\n",(0,i.jsx)(n.p,{children:"In more general contexts, data may refer to any form of information."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-112",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dead-cell",children:"Dead Cell"}),"\n",(0,i.jsx)(n.p,{children:"A Cell that has been used as an input to a previous transaction and is consumed."}),"\n",(0,i.jsx)(n.p,{children:"A Dead Cell cannot be used as an input to a new transaction, nor can it be used as a dependency. It is effectively destroyed and removed from the active state of the network."}),"\n",(0,i.jsx)(n.p,{children:'A Dead Cell is the equivalent of a "spent UTXO" in Bitcoin.'}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-34",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#historical-cell",children:"Historical Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-113",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consume",children:"Consume"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dep-group",children:"Dep Group"}),"\n",(0,i.jsx)(n.p,{children:"A method for referencing multiple dependencies which are commonly used together using a single dependency field."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-114",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dep-type",children:"Dep Type"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0022-transaction-structure/0022-transaction-structure.md",children:"CKB Transaction Structure on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dep-type",children:"Dep Type"}),"\n",(0,i.jsx)(n.p,{children:"A field that specifies the type of the dependency."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-115",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dep-group",children:"Dep Group"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0022-transaction-structure/0022-transaction-structure.md",children:"CKB Transaction Structure on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"deps",children:"Deps"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for dependencies."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-35",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dependencies",children:"Dependencies"}),"\n",(0,i.jsx)(n.p,{children:"Dependencies are commonly referred to as deps. Dependencies are Cells that are referenced in a transaction. Cells that are referenced as dependencies are read-only and made available to any scripts executing within the transaction. Dependencies, or deps, are not consumed."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-36",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#deps",children:"Deps"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-116",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consume",children:"Consume"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"duktape",children:"Duktape"}),"\n",(0,i.jsx)(n.p,{children:"Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint."}),"\n",(0,i.jsx)(n.p,{children:"Duktape is used to run JavaScript based smart contracts on Nervos."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-117",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://duktape.org/",children:"Duktape Official Website"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"difficulty",children:"Difficulty"}),"\n",(0,i.jsxs)(n.p,{children:["A measurement of how difficult it is to solve the ",(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})," cryptographic puzzle required to create a block."]}),"\n",(0,i.jsx)(n.p,{children:"Networks automatically adjust the difficulty to control the speed at which blocks are generated as mining participants enter and exit the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-118",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"diviner",children:"Diviner"}),"\n",(0,i.jsx)(n.p,{children:"A deterministic testing framework for Rust."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-119",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/xxuejie/diviner",children:"Diviner on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"eaglesong",children:"Eaglesong"}),"\n",(0,i.jsx)(n.p,{children:"Eaglesong is a new hash function developed specifically for Nervos CKB proof-of-work, which is also suitable in other use cases in which a secure hash function is needed."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-120",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0010-eaglesong/0010-eaglesong.md",children:"Eaglesong RFC on the Nervos Github"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/the-proof-of-work-function-of-nervos-ckb-3cc8364464d9",children:"Introducing Eaglesong, Nervos\u2019s New Hash Function for CKB Proof-of-Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"epoch_duration_target",children:(0,i.jsx)(n.code,{children:"epoch_duration_target"})}),"\n",(0,i.jsx)(n.p,{children:"The estimated epoch duration specified by NC-Max. Set as 4 hours in CKB."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const DEFAULT_EPOCH_DURATION_TARGET: u64 = 4 * 60 * 60; // 4 hours, unit: second\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-121",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#epoch",children:"Epoch"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc20",children:"ERC20"}),"\n",(0,i.jsx)(n.p,{children:"An Ethereum token standard for basic fungible tokens."}),"\n",(0,i.jsx)(n.p,{children:"An sUDT on Nervos is the equivalent of Ethereum tokens standards ERC20 or ERC777."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-122",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#erc777",children:"ERC777"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-20",children:"ERC20 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc721",children:"ERC721"}),"\n",(0,i.jsx)(n.p,{children:"An Ethereum token standard for non-fungible tokens."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-123",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-721",children:"ERC721 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc777",children:"ERC777"}),"\n",(0,i.jsx)(n.p,{children:"An updated Ethereum token standard for basic fungible tokens that is backwards compatible with ERC20."}),"\n",(0,i.jsx)(n.p,{children:"An sUDT on Nervos is the equivalent of Ethereum tokens standards ERC20 or ERC777."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-124",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#erc20",children:"ERC20"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-777",children:"ERC777 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc1155",children:"ERC1155"}),"\n",(0,i.jsx)(n.p,{children:"An Ethereum token standard that supports the creation any number of fungible or non-fungible tokens on a single contract."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-125",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-1155",children:"ERC1155 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"full-address",children:"Full Address"}),"\n",(0,i.jsx)(n.p,{children:"An address format used on Nervos that includes the full code hash of the lock script associated."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-126",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#address",children:"Address"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#short-address",children:"Short Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"generator",children:"Generator"}),"\n",(0,i.jsx)(n.p,{children:"A program used to create transactions that can be broadcast to the Nervos CKB network."}),"\n",(0,i.jsx)(n.p,{children:"Generators run locally on the client side (off-chain). They utilize user input and existing Cells as program inputs, to create new Cells with new states as output."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"genesis-block",children:"Genesis Block"}),"\n",(0,i.jsx)(n.p,{children:"The first block in the blockchain, used to initialize the global state. The genesis block is unique because it does not contain a reference to the previous block because it is the first."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-127",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"genesis_hash",children:(0,i.jsx)(n.code,{children:"genesis_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["Hash of CKB genesis block. CKB Genesis Block was created in a decentralized manner that encourages everyone to generate a unique genesis block verifiably through the ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/genesis-block-generator/blob/master/spec.md",children:"Genesis Block Generator"}),". Nodes thus created and activated can be connected to any other node across the network to form a decentralized Common Knowledge Base."]}),"\n",(0,i.jsx)(n.p,{children:"The genesis block contains two main components:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/ckb-system-scripts/blob/v0.5.4/c/dao.c",children:"System script"})}),"\n",(0,i.jsxs)(n.li,{children:["Token pre-allocation based on the Nervos Foundation\u2018s ",(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/nervos-ckb-official-public-sale-announcement-431438f4cc39#:~:text=Key%20details%20of%20the%20Nervos%20Public%20Sale&text=The%20initial%20total%20supply%20of,be%201%20CKB%20%3D%200.01%20USD.",children:"announcement"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-128",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#genesis-block",children:"Genesis block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"godwoken",children:"Godwoken"}),"\n",(0,i.jsx)(n.p,{children:"Godwoken is a layer 2 rollup framework for Nervos CKB. It provides scaling capability, as well as an abstract account model to CKB."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-129",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/godwoken",children:"Godwoken on GitHub"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://docs.godwoken.io/",children:"Godwoken Documentation Site"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"governance-script",children:"Governance Script"}),"\n",(0,i.jsx)(n.p,{children:"A type script which defines the monetary policy of a User Defined Token (UDT)."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-130",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#governance-script-hash",children:"Governance Script Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"governance-script-hash",children:"Governance Script Hash"}),"\n",(0,i.jsx)(n.p,{children:"A Blake2b hash of a type script which is used as an identifier for the script when referenced by a Cell."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-37",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script-hash",children:"Type Script Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-131",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#governance-script",children:"Governance Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"historical-cell",children:"Historical Cell"}),"\n",(0,i.jsxs)(n.p,{children:["An alternative term for ",(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-38",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-132",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"inbound-connection",children:"Inbound Connection"}),"\n",(0,i.jsx)(n.p,{children:"Inbound connection means it is initiated by the remote peer; and the connection itself is outgoing connection when we switch the subject to the remote peer."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-133",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#outbound-connection",children:"Outbound Connection"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"indexer",children:"Indexer"}),"\n",(0,i.jsx)(n.p,{children:"An application or library to trace Live Cells that comply with criteria specified by the developer or user."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-134",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"initial_primary_epoch_reward",children:(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})}),"\n",(0,i.jsx)(n.p,{children:"Incentives paid to miners in CKBytes by epoch in CKB base issuance. Under CKB's consensus, block interval is uncertain, while epoch can be fixed at approximately 4 hours, so reward issuance is determined by epoch. Each epoch issues 1_917_808_21917808 Shannons of CKBytes, whose total amount is fixed but halves every 4 years."}),"\n",(0,i.jsx)(n.p,{children:"The initial base issuance is 4.2 billion CKBytes per year. Similar to Bitcoin, the base issuance halves approximately every 4 years until it stops."}),"\n",(0,i.jsxs)(n.p,{children:["To calculate, ",(0,i.jsx)(n.a,{href:"/docs/concepts/glossary#block-reward",children:"block reward"})," = ",(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})," / epoch_length (the number of blocks in the epoch)."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const INITIAL_PRIMARY_EPOCH_REWARD: Capacity = Capacity::shannons(1_917_808_21917808);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-135",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-reward",children:"Block Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#epoch",children:"Epoch"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary_epoch_reward",children:(0,i.jsx)(n.code,{children:"secondary_epoch_reward"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"input",children:"Input"}),"\n",(0,i.jsx)(n.p,{children:"A Live Cell that is used in a transaction. If the transaction is accepted by the network, the Live Cell gets consumed as input and labeled as a Dead Cell."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-136",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consume",children:"Consume"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"keyper",children:"Keyper"}),"\n",(0,i.jsx)(n.p,{children:"A specification of how to manage wallet Lock Scripts which apply to a specific user."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-137",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ququzone/keyper",children:"Keyper on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"late-spawning",children:"Late Spawning"}),"\n",(0,i.jsx)(n.p,{children:"When a node joins a blockchain network for the first time after the network has already been in operation for a period of time."}),"\n",(0,i.jsx)(n.p,{children:"A network is said to support late spawning if that participant can download and verify the entire blockchain without having to trust any of the participants in the network to feed them unaltered data."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-138",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#genesis-block",children:"Genesis Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"layer-1",children:"Layer 1"}),"\n",(0,i.jsx)(n.p,{children:"Layer 1 of a decentralized ecosystem is the underlying blockchain architecture."}),"\n",(0,i.jsx)(n.p,{children:"A proof of work blockchain known as the Common Knowledge Base (CKB) that serves as the base layer for the Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-139",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"layer-2",children:"Layer 2"}),"\n",(0,i.jsx)(n.p,{children:"Layer 2 refers to a secondary framework or protocol that is built on top of an existing blockchain system."}),"\n",(0,i.jsx)(n.p,{children:"The main goal of these protocols is to solve the transaction speed and scaling difficulties that are being faced by the major cryptocurrency networks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-140",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"lina",children:"Lina"}),"\n",(0,i.jsx)(n.p,{children:"The name of public Mainnet of the Nervos CKB."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"CKB version"}),": >= v0.25.2 (latest stable is recommended)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Genesis hash"}),": 0x92b197aa1fba0f63633922c61c92375c9c074a93e85963554f5499fe1450d0e5"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Init command"}),": ",(0,i.jsx)(n.code,{children:"ckb init --chain mainnet"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Launched at"}),": 2019-11-15 21:11:00 UTC"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-39",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-4",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#testnet",children:"Testnet"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-141",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"live-cell",children:"Live Cell"}),"\n",(0,i.jsx)(n.p,{children:"A Cell that has not been consumed and is available for use."}),"\n",(0,i.jsx)(n.p,{children:"This is similar to an unspent transaction output (UTXO) in Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-40",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#active-cell",children:"Active Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-142",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"lock",children:"Lock"}),"\n",(0,i.jsx)(n.p,{children:"A script that represents the ownership of a Cell. A user successfully unlocks a Cell and is able to consume it if the Cell's lock script exits normally."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-143",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"lock-script",children:"Lock Script"}),"\n",(0,i.jsx)(n.p,{children:"A script that enforces access and ownership of a Cell. This script controls who has permission to use the Cell as an input. Lock scripts accept user generated proofs or witnesses and including transaction as inputs."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-144",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"lock-script-hash",children:"Lock Script Hash"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.a,{href:"#blake2b",children:"Blake2b"})," hash of a lock script which is used as an identifier for the script when referenced by a Cell."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-145",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mainnet",children:"Mainnet"}),"\n",(0,i.jsxs)(n.p,{children:['Short for "main network", the running Nervos CKB public blockchain. The name of the Nervos CKB Mainnet is ',(0,i.jsx)(n.a,{href:"#lina",children:"Lina"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-41",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lina",children:"Lina"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-5",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#testnet",children:"Testnet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_block_bytes",children:(0,i.jsx)(n.code,{children:"max_block_bytes"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum transaction size limit allowed in a block in bytes. Estimated based on the size consumed by 1000 2-in-2-out secp256k1 transactions."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub const MAX_BLOCK_BYTES: u64 = TWO_IN_TWO_OUT_BYTES * TWO_IN_TWO_OUT_COUNT;\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_block_cycles",children:(0,i.jsx)(n.code,{children:"max_block_cycles"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum transaction cycle limit allowed in a block. Estimated based on the cycles consumed by 1000 2-in-2-out secp256k1 transactions."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"/// cycles of a typical two-in-two-out tx.\npub const TWO_IN_TWO_OUT_CYCLES: Cycle = 3_500_000;\n\n/// count of two-in-two-out txs a block should capable to package.\nconst TWO_IN_TWO_OUT_COUNT: u64 = 1_000;\npub(crate) const MAX_BLOCK_CYCLES: u64 = TWO_IN_TWO_OUT_CYCLES * TWO_IN_TWO_OUT_COUNT;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-146",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cycles",children:"Cycles"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_block_proposals_limit",children:(0,i.jsx)(n.code,{children:"max_block_proposals_limit"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum amount of proposals contained in one block. The default value starts from 1.5."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"TWO_IN_TWO_OUT_COUNT\npub const MAX_BLOCK_PROPOSALS_LIMIT: u64 = 1_500;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-147",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-zone",children:"Proposal Zone"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_uncles_num",children:(0,i.jsx)(n.code,{children:"max_uncles_num"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum number (Uint64) of uncle blocks allowed for one block. Set as 2 by default."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"const MAX_UNCLE_NUM: usize = 2;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-148",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"median_time_block_count",children:(0,i.jsx)(n.code,{children:"median_time_block_count"})}),"\n",(0,i.jsx)(n.p,{children:"A timestamp is valid only when it is greater than the median timestamp of the previous 37 blocks."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"const MEDIAN_TIME_BLOCK_COUNT: usize = 37;\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"minting",children:"Minting"}),"\n",(0,i.jsx)(n.p,{children:"The process of creating of new tokens."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-149",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"molecule",children:"Molecule"}),"\n",(0,i.jsx)(n.p,{children:"A serialization framework for encoding data widely used on the Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-150",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0008-serialization/0008-serialization.md",children:"Molecule Specification"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/molecule",children:"Molecule on Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"muta",children:"Muta"}),"\n",(0,i.jsx)(n.p,{children:"A highly customizable, high-performance blockchain framework designed to support proof of stake, BFT consensus and smart contracts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-151",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/muta",children:"Muta on GitHub"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-stake",children:"Proof of Stake"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nervos-ckb",children:"Nervos CKB"}),"\n",(0,i.jsx)(n.p,{children:"The layer 1 blockchain of the Nervos Network, the Common Knowledge Base."}),"\n",(0,i.jsx)(n.p,{children:"Nervos CKB is often referred to as the Nervos Blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-42",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-152",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"off-chain-computation",children:"Off-Chain Computation"}),"\n",(0,i.jsx)(n.p,{children:"A programming model where all computation is done off-chain to reduce the burden on the nodes in the network and provide higher levels of scalability. Nervos uses off-chain computation and on-chain verification."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-153",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-computation",children:"On-Chain Computation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-verification",children:"On-Chain Verification"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"off-chain-scaling",children:"Off-Chain Scaling"}),"\n",(0,i.jsx)(n.p,{children:"Off-chain scaling is the approach that only using the blockchain as a secure asset and settlement platform in conjunction with transferring almost all transactions off the blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-154",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-scaling",children:"On-Chain Scaling"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"off-chain-state",children:"Off-Chain State"}),"\n",(0,i.jsx)(n.p,{children:"The data of an application that is not stored on the blockchain, or is not accessible by on-chain smart contracts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-155",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-state",children:"On-Chain State"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-computation",children:"On-Chain Computation"}),"\n",(0,i.jsx)(n.p,{children:"A programming model where all computation by smart contracts is done on-chain by every node on the network simultaneously."}),"\n",(0,i.jsx)(n.p,{children:"Ethereum uses on-chain computation."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-156",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#off-chain-computation",children:"Off-Chain Computation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-scaling",children:"On-Chain Scaling"}),"\n",(0,i.jsx)(n.p,{children:"On-chain scaling solution refer to extending the throughput of the consensus process, or increasing network throughput as node number increases."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-157",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#off-chain-scaling",children:"Off-chain Scaling"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-state",children:"On-Chain State"}),"\n",(0,i.jsx)(n.p,{children:"The data of an application that is stored on the blockchain and is accessible by on-chain smart contracts."}),"\n",(0,i.jsx)(n.p,{children:"Nervos provides on-chain state for all smart contracts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-158",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#off-chain-state",children:"Off-Chain State"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-verification",children:"On-Chain Verification"}),"\n",(0,i.jsx)(n.p,{children:"A programming model where all computation is done off-chain to reduce the burden on the nodes in the network, but verification of the resulting data is done on-chain to enforce the smart contract rules created by the developer."}),"\n",(0,i.jsx)(n.p,{children:"Nervos uses off-chain computation and on-chain verification."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-159",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-computation",children:"On-Chain Computation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"open-transaction",children:"Open Transaction"}),"\n",(0,i.jsx)(n.p,{children:"A signed piece of a transaction that is incomplete and invalid on its own. When combined with other signed transaction pieces can form a complete transaction which can be processed."}),"\n",(0,i.jsx)(n.p,{children:"One use of open transactions is to create the functionality required for a trustless decentalized exchange."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-160",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptographic-signature",children:"Cryptographic Signature"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"optimistic-rollup",children:"Optimistic Rollup"}),"\n",(0,i.jsx)(n.p,{children:"A rollup of transactions that use fraud proofs to offer increased layer 2 transaction throughput while using the security and data availability provided by layer 1."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-161",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan",children:"Orphan"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for Orphan Block."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-43",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan-block",children:"Orphan Block"}),"\n",(0,i.jsx)(n.p,{children:"An orphan block is a valid block that is not included in the main fork due to, for example, a lag within the network itself. There can be two miners who solve a block simultaneously in NC-Max. They are non-main-chain blocks, also known as stale blocks."}),"\n",(0,i.jsx)(n.p,{children:"In Nervos, orphan blocks are better described as Uncles."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-44",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan",children:"Orphan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-162",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan-rate",children:"Orphan Rate"}),"\n",(0,i.jsx)(n.p,{children:"A measure of the speed at which Orphan blocks occur within the blockchain network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-163",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan_rate_target",children:(0,i.jsx)(n.code,{children:"orphan_rate_target"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan_rate_target",children:(0,i.jsx)(n.code,{children:"orphan_rate_target"})}),"\n",(0,i.jsx)(n.p,{children:"The estimated orphan block rate specified in NC-max. Set as 2.5% in CKB."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"// o_ideal = 1/40 = 2.5%\npub(crate) const DEFAULT_ORPHAN_RATE_TARGET: (u32, u32) = (1, 40);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-164",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan-transactions",children:"Orphan Transactions"}),"\n",(0,i.jsx)(n.p,{children:"Orphan transactions are those whose parental transactions are missing at the time that they are processed. These transactions are not propagated to other nodes until all of their missing parents are received, and they thus end up languishing in a local buffer until evicted or their parents are found."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-165",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"outbound-connection",children:"Outbound Connection"}),"\n",(0,i.jsx)(n.p,{children:'Also knowns as "outgoing connection".'}),"\n",(0,i.jsx)(n.p,{children:"A TCP connection is outgoing for the node if it was initiated (sent the TCP SYN packet) by the node in the context."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-166",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#inbound-connection",children:"Inbound Connection"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"outpoint",children:"Outpoint"}),"\n",(0,i.jsx)(n.p,{children:"A particular output Cell in a transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-167",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#output",children:"Output"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"output",children:"Output"}),"\n",(0,i.jsx)(n.p,{children:"A Live Cell that is created in a transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-168",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"overlord",children:"Overlord"}),"\n",(0,i.jsx)(n.p,{children:"A byzantine fault tollerant consensus algorithm designed by Nervos for Huobi which can support thousands of transactions per second."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-169",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/overlord-a-new-consensus-algorithm-3cc51690d269",children:"Overlord on Medium"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"p2wsh",children:"P2WSH"}),"\n",(0,i.jsxs)(n.p,{children:["A Pay-to-Witness-Script-Hash (P2WSH) is a type of Bitcoin transaction similar to a ",(0,i.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/Pay_to_script_hash",children:"P2SH"})," transaction in most ways, except that it uses ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/SegWit",children:"SegWit"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"permanent_difficulty_in_dummy",children:(0,i.jsx)(n.code,{children:"permanent_difficulty_in_dummy"})}),"\n",(0,i.jsxs)(n.p,{children:["Keeps the difficulty permanent if PoW is dummy when dev-chain disables NC-MAX difficulty adjustment. As ",(0,i.jsx)(n.code,{children:"boolean"}),", it can be enabled through configuration."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-170",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#difficulty",children:"Difficulty"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"polyjuice",children:"Polyjuice"}),"\n",(0,i.jsx)(n.p,{children:"Polyjuice provides an Ethereum compatible runtime on Godwoken."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-171",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#godwoken",children:"Godwoken"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/polyjuice",children:"Polyjuice on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"primary_epoch_reward_halving_interval",children:(0,i.jsx)(n.code,{children:"primary_epoch_reward_halving_interval"})}),"\n",(0,i.jsx)(n.p,{children:"The halving cycle of epoch reward in CKB base issuance, typically every four years. The mining reward halves when the halving interval occurs."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const DEFAULT_PRIMARY_EPOCH_REWARD_HALVING_INTERVAL: EpochNumber =\n4 * 365 * 24 * 60 * 60 / DEFAULT_EPOCH_DURATION_TARGET; // every 4 years\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-172",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#initial_primary_epoch_reward",children:(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proposal-zone",children:"Proposal Zone"}),"\n",(0,i.jsx)(n.p,{children:"Section of the block that contains transaction proposals."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-173",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commitment-zone",children:"Commitment Zone"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#propose",children:"Propose"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"propose",children:"Propose"}),"\n",(0,i.jsx)(n.p,{children:"The process of taking an unconfirmed transaction out of the mempool and proposing it for commitment. A transaction is not confirmed until after it has been committed."}),"\n",(0,i.jsx)(n.p,{children:"Miners are incentivized to propose transactions by being paid a proposal reward."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-174",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commit",children:"Commit"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mempool",children:"Mempool"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-reward",children:"Proposal Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-zone",children:"Proposal Zone"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proposer_reward_ratio",children:(0,i.jsx)(n.code,{children:"proposer_reward_ratio"})}),"\n",(0,i.jsx)(n.p,{children:"The reward ratio from transaction fees for miners who submit proposals specified by NC-Max. It is set as 40% in CKB, meaning the miner who first submits the transaction proposal will be rewarded with 40% of the transaction fee."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"const PROPOSER_REWARD_RATIO: Ratio = Ratio::new(4, 10);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-175",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-reward",children:"Proposal Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"risc-v",children:"RISC-V"}),"\n",(0,i.jsx)(n.p,{children:"An open standard instruction set architecture (ISA) for general computing."}),"\n",(0,i.jsx)(n.p,{children:"RISC-V is the instruction set used by the CKB-VM."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-176",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb-vm",children:"CKB-VM"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/RISC-V",children:"RISC-V on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"schnorr-signature",children:"Schnorr Signature"}),"\n",(0,i.jsx)(n.p,{children:"A cryptographic signature scheme for signing and verification."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-177",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Schnorr_signature",children:"Schnorr Signature on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"script",children:"Script"}),"\n",(0,i.jsx)(n.p,{children:"A script in Nervos CKB is a binary executable on the CKB-VM. Compared to Bitcoin script, CKB script is Turing-complete, equivalent to smart contract. A Script can be one of two types:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Lock Script - Used to control ownership and access to a Cell."}),"\n",(0,i.jsx)(n.li,{children:"Type Script - Used to control how a Cell is used in a transaction."}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-178",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"CKB-VM"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"RISC-V"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Executable_and_Linkable_Format",children:"ELF on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secondary_epoch_reward",children:(0,i.jsx)(n.code,{children:"secondary_epoch_reward"})}),"\n",(0,i.jsxs)(n.p,{children:["The secondary reward per epoch. Issued according to CKB\u2019s tokenomics detailed in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"RFC0015"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Secondary issuance is designed to collect state rent, and has an issuance amount that is constant over time. After base issuance stops, there will only be secondary issuance."}),"\n",(0,i.jsx)(n.p,{children:"Secondary issuance has two parts. One is a fixed amount of base incentive (approximately 134.4 million CKBytes per year), while the other varies according to the number of CKBytes currently occupied."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const DEFAULT_SECONDARY_EPOCH_REWARD: Capacity = Capacity::shannons(613_698_63013698);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-179",children:"See also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#initial_primary_epoch_reward",children:(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secp256k1_blake160_sighash_all_type_hash",children:(0,i.jsx)(n.code,{children:"secp256k1_blake160_sighash_all_type_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["Type hash of ",(0,i.jsx)(n.code,{children:"secp256k1_blake160_sighash_all"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#ckb-genesis-script-list",children:"CKB genesis scripts"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Find more details ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#secp256k1blake160",children:"here"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secp256k1_blake160_multisig_all_type_hash",children:(0,i.jsx)(n.code,{children:"secp256k1_blake160_multisig_all_type_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["Type hash of ",(0,i.jsx)(n.code,{children:"secp256k1_blake160_multisig_all"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#ckb-genesis-script-list",children:"CKB genesis scripts"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Find more details ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#secp256k1multisig",children:"here"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"seed-cell",children:"Seed Cell"}),"\n",(0,i.jsx)(n.p,{children:"A design pattern on Nervos from creating unique identifiers used to create unforgeable assets."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-180",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"shannon",children:"Shannon"}),"\n",(0,i.jsx)(n.p,{children:"A fractional denomination of CKBytes. One CKByte is equal to 100,000,000 Shannons."}),"\n",(0,i.jsx)(n.p,{children:"A Shannon is the equivalent of a Bitcoin Satoshi."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-181",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"Satoshi (denomination) on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"short-address",children:"Short Address"}),"\n",(0,i.jsx)(n.p,{children:"An address format on Nervos that does not include a code hash of the associated lock script, instead using one of the many common lock scripts."}),"\n",(0,i.jsx)(n.p,{children:'The short address format is the most common address format used, and is often referred to as simply "address".'}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-45",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#address",children:"Address"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-182",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#code-hash",children:"Code Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-address",children:"Full Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"simple-udt",children:"Simple UDT"}),"\n",(0,i.jsx)(n.p,{children:"A standard that defines a the most basic implementation of a UDT fungible token on Nervos."}),"\n",(0,i.jsx)(n.p,{children:"An sUDT on Nervos is the equivalent of Ethereum tokens standards ERC20 or ERC777."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-46",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#sudt",children:"SUDT"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-183",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-20",children:"ERC20 on Ethereum.org"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0025-simple-udt/0025-simple-udt.md",children:"Simple UDT RFC on Nervos Nerwork Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"since",children:"Since"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"since"})," is the u64 (unsigned 64-bit integer) field in transaction input for preventing inclusion before a certain block timestamp or a block number."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-184",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"spv",children:"SPV"}),"\n",(0,i.jsx)(n.p,{children:"An abbreviation for Simplified Payment Verification. A protocol for using a blockchain cryptocurrency without having to operate a full node."}),"\n",(0,i.jsx)(n.p,{children:"SPV clients require far less data to be stored, but also must requires the trust of the network clients it is connected to directly."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-185",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spv-wallet",children:"SPV Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.bitcoinwiki.org/wiki/Simplified_Payment_Verification",children:"Simplified Payment Verification on BitcoinWiki"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"spv-wallet",children:"SPV Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A light-weight cryptocurrency wallet that uses the SPV protocol."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-186",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spv",children:"SPV"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"sudt",children:"SUDT"}),"\n",(0,i.jsx)(n.p,{children:"An abbreviation for Simple UDT."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-47",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#simple-udt",children:"Simple UDT"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"testnet",children:"Testnet"}),"\n",(0,i.jsxs)(n.p,{children:["Short for \u201ctest network,\u201d a network used to simulate the behavior of the ",(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"}),". The name of the Nervos CKB Testnet is ",(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-48",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-6",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lina",children:"Lina"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-confirmation-number",children:"Transaction Confirmation Number"}),"\n",(0,i.jsx)(n.p,{children:"The number of confirmations required for a transaction to be added to a block."}),"\n",(0,i.jsxs)(n.p,{children:["As permissionless blockchain designs offer only probabilistic finality, a transaction can never be fully confirmed, facing an adversary with infinite computational power. Therefore, users and apps can choose a number they deem secure. We briefly discuss one factor here that influences the level of security: the recent orphan rate. It takes 6 confirmations to fully settle a transaction when the orphan rate is 0, and 24 confirmations when the rate reaches 2.5% to achieve the same level of security (See the rationale and calculation ",(0,i.jsx)(n.a,{href:"https://nervos-ckb-docs-git-v1-cryptape.vercel.app/docs/essays/tx-confirmation/",children:"here"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["In blockchain settlement assurance, transaction confirmation is one of the variables that cannot be easily quantified (See Nic Carter\u2019s ",(0,i.jsx)(n.a,{href:"https://medium.com/@nic__carter/its-the-settlement-assurances-stupid-5dcd1c3f4e41",children:"article"}),"). The exact number is open to adjustment depending on the security level that users desire. Nervos CKB sets a minimum of 15 confirmations, which should be considered conservative."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-187",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-hash",children:"Transaction Hash"}),"\n",(0,i.jsx)(n.p,{children:"Transaction hash, or Txhash, is the unique identifier of a transaction in a blockchain that acts as a record or proof that the transaction has taken place. To get a transaction hash in CKB, the transaction is serialized via Molecule, then the serialized raw is feed to ckbhash function. Its schema is:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"table Transaction {\n raw: RawTransaction,\n witnesses: BytesVec,\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Transaction hash is generated by the serialized ",(0,i.jsx)(n.code,{children:"raw"})," structure through ",(0,i.jsx)(n.a,{href:"#ckbhash",children:"ckbhash"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-188",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-witness-hash",children:"Transaction Witness Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#molecule",children:"Molecule"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0027-block-structure/0027-block-structure.md#transaction-hash",children:"Transaction Hash in RFC on Nervos Network Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-witness-hash",children:"Transaction Witness Hash"}),"\n",(0,i.jsxs)(n.p,{children:["Transaction witness hash is generated by the serialized transaction through ckbhash. Transaction is serialized via ",(0,i.jsx)(n.a,{href:"#molecule",children:"molecule"})," in CKB. Its schema is:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"table Transaction {\n raw: RawTransaction,\n witnesses: BytesVec,\n}\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-189",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-hash",children:"Transaction Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#molecule",children:"Molecule"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-root",children:"Transaction Root"}),"\n",(0,i.jsxs)(n.p,{children:["The field ",(0,i.jsx)(n.code,{children:"transactions_root"})," in header is"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckbhash(T || W)\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ckbhash"})," is the hash function, ",(0,i.jsx)(n.code,{children:"||"})," denotes binary concatenation."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["T is the root of a ",(0,i.jsx)(n.a,{href:"#ckb-merkle-tree",children:"CKB Merkle Tree"}),", which items are the ",(0,i.jsx)(n.a,{href:"#transaction-hash",children:"transaction hashes"})," of all the transactions in the block."]}),"\n",(0,i.jsxs)(n.p,{children:["W is also the root of a ",(0,i.jsx)(n.a,{href:"#ckb-merkle-tree",children:"CKB Merkle Tree"}),", but the items are the ",(0,i.jsx)(n.a,{href:"#transaction-witness-hash",children:"Transaction Witness Hash"})," of all the transactions in the block."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-190",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb-merkle-tree",children:"CKB Merkle Tree"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-witness-hash",children:"Transaction Witness Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tx_proposal_window",children:(0,i.jsx)(n.code,{children:"tx_proposal_window"})}),"\n",(0,i.jsx)(n.p,{children:"Interval for submitting proposals in the second stage specified by NC-Max. Set between 2 and 10 blocks in CKB."}),"\n",(0,i.jsx)("img",{src:(0,r.A)("img/tx-proposal-window.png")}),"\n",(0,i.jsx)(n.p,{children:"As shown above, when a transaction is first proposed in Block 13, it can be committed in the window between Block 15 and Block 23."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const TX_PROPOSAL_WINDOW: ProposalWindow = ProposalWindow(2, 10);\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tx_version",children:(0,i.jsx)(n.code,{children:"tx_version"})}),"\n",(0,i.jsx)(n.p,{children:"The version of a transaction. This field is set to 0 and is reserved for the system."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub const TX_VERSION: Version = 0;\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type_id",children:(0,i.jsx)(n.code,{children:"type_id"})}),"\n",(0,i.jsxs)(n.p,{children:["One of the CKB ",(0,i.jsx)(n.code,{children:"system_scripts"}),". A unique feature of Type ID is that it\u2018s a CKB built-in script directly implemented in Rust. It doesn't run in CKB-VM but can be used in the same way as other ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#type-id",children:"CKB genesis scripts"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["For a deeper understanding of Type ID, check out this blog post: ",(0,i.jsx)(n.a,{href:"https://xuejie.space/2020_02_03_introduction_to_ckb_script_programming_type_id/",children:"Introduction to CKB Script Programming 6: Type ID"})," (also translated into ",(0,i.jsx)(n.a,{href:"https://talk.nervos.org/t/ckb-type-id/4258",children:"Chinese"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-191",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type_id_code_hash",children:(0,i.jsx)(n.code,{children:"type_id_code_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"code_hash"})," of ",(0,i.jsx)(n.code,{children:"type_id"}),". In view of the specificity of ",(0,i.jsx)(n.code,{children:"type_id"}),", ",(0,i.jsx)(n.code,{children:"type_id_code_hash"})," is hard-coded, not the hash of the actual code."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-192",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type_id",children:(0,i.jsx)(n.code,{children:"type_id"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type-script",children:"Type Script"}),"\n",(0,i.jsx)(n.p,{children:"A script that enforces the rules that must be followed in a transaction for a Cell to be consumed as an input or for a Cell to be created as an output."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-193",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script-hash",children:"Type Script Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type-script-hash",children:"Type Script Hash"}),"\n",(0,i.jsxs)(n.p,{children:["Or ",(0,i.jsx)(n.code,{children:"type_hash"}),", a Blake2b hash of a Type Script which is used as an identifier for the Script when referenced by a Cell."]}),"\n",(0,i.jsxs)(n.p,{children:["The two entities in the data structure of CKB\u2019s Cell are ",(0,i.jsx)(n.code,{children:"lock"})," and ",(0,i.jsx)(n.code,{children:"type"}),". Type scripts can capture any validation logic needed in the Offtransformation."]}),"\n",(0,i.jsx)(n.p,{children:"Type scripts can implement economic constructs as well. NervosDAO is completely implemented as a type script with minimal support from the consensus layer."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-194",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/ckb-system-scripts/blob/66d7da8ec72dffaa7e9c55904833951eca2422a9/c/dao.c",children:"NervosDAO"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"uncle",children:"Uncle"}),"\n",(0,i.jsx)(n.p,{children:"Or Uncle Block. Uncle blocks are created when two blocks are mined and submitted to the ledger at roughly the same time. Only one can enter the ledger as an included block, and the other does not."}),"\n",(0,i.jsx)(n.p,{children:"Uncles are paid a reduced block reward when they are found and reported."}),"\n",(0,i.jsx)(n.p,{children:"On Nervos, Uncles are tracked by consensus to adjust the block interval of the network."}),"\n",(0,i.jsx)(n.p,{children:"An uncle block has to meet the following conditions:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"An uncle should not be on the main chain; in other words, it should not be an uncle if it includes any block from the main chain."}),"\n",(0,i.jsx)(n.li,{children:"Uncle\u2019s block number must be smaller than the block\u2018s number that later includes it."}),"\n",(0,i.jsx)(n.li,{children:"Uncle\u2018s parent must be on the main chain, or uncle\u2019s parent must also be an uncle. In other words, uncle must be linkable to the main chain in any way. It can never be a random block that is not on the main chain."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"- if !snapshot.is_main_chain(&uncle.hash()) // It should not be on the main chain.\n- && !snapshot.is_uncle(&uncle.hash()) // It should not be an uncle twice. \n- && uncle.number() < candidate_number // The block number of the uncle should be smaller than that of any block on the main chain. \n- && (uncles.iter().any(|u| u.hash() == parent_hash) \n|| snapshot.is_main_chain(&parent_hash) // Uncle block should not be parentless. The parent of un uncle must be a block on the main chain or another uncle. \n|| snapshot.is_uncle(&parent_hash))\n"})}),"\n",(0,i.jsx)("img",{src:(0,r.A)("img/uncle_rule.png")}),"\n",(0,i.jsx)(n.p,{children:"As illustrated above, A is the main chain. B3 can be the uncle of A4 (to be included in A4), since B3 is linked to A2. However, B4 cannot be included in A4, since the uncle\u2019s block number must be smaller than A4, the current block on the main chain."}),"\n",(0,i.jsx)(n.p,{children:"Similarly, B4 can be the uncle of A5 (be included by A5). Although B4\u2018s parent, B3, is not on the main chain, B3 is the uncle of A4. For this reason, B4 is a legal uncle, and B3 cannot be included by A5."}),"\n",(0,i.jsx)(n.p,{children:"C2 and C3 cannot be linked to the main chain as their parent is unknown, therefore, they cannot be uncles."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-195",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#max_uncles_num",children:(0,i.jsx)(n.code,{children:"max_uncles_num"})})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-49",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-196",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-interval",children:"Block Interval"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"uncle-rate",children:"Uncle Rate"}),"\n",(0,i.jsx)(n.h4,{id:"see-also-197",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"validator",children:"Validator"}),"\n",(0,i.jsx)(n.p,{children:"A script that is used to ensure that the transactions created by the generators are valid. Validators are scripts that run in CKB-VM as either lock scripts or type scripts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-198",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb-vm",children:"CKB-VM"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"witness",children:"Witness"}),"\n",(0,i.jsx)(n.p,{children:"A set of cryptographic proof containing the data required to prove authorization of the resources used in the transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-199",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"xudt",children:"XUDT"}),"\n",(0,i.jsx)(n.p,{children:"An extended UDT standard upon sUDT (Simple UDT) to accommodate additional functionalities, including regulatory compliance. Also written as Extensible UDT."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-200",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#simple-udt",children:"Simple UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"zk-snark",children:"Zk-SNARK"}),"\n",(0,i.jsx)(n.p,{children:"A form of cryptographic proof, that when used in cryptocurrencies, allows for privacy features which do not reveal the amounts or participants in transactions."}),"\n",(0,i.jsx)(n.p,{children:"Zk-SNARKs require a trusted setup, but are otherwise trustless."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-201",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#zk-stark",children:"Zk-STARK"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof",children:"Non-interactive zero-knowledge proofs on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"zk-stark",children:"Zk-STARK"}),"\n",(0,i.jsx)(n.p,{children:"A form of cryptographic proof, that when used in cryptocurrencies, allows for privacy features which do not reveal the amounts or participants in transactions."}),"\n",(0,i.jsx)(n.p,{children:"Unlike Zk-SNARKs, Zk-STARKs do not require a trusted setup."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-202",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#zk-snark",children:"Zk-SNARK"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof",children:"Non-interactive zero-knowledge proofs on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{})]})}function x(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var i=s(6540);const l={},r=i.createContext(l);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkdocs_nervos_org=self.webpackChunkdocs_nervos_org||[]).push([[743],{4990:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>a,default:()=>x,frontMatter:()=>o,metadata:()=>c,toc:()=>t});var i=s(4848),l=s(8453),r=s(8180);s(4783);const o={id:"glossary",title:"Glossary",sidebar_position:7},a=void 0,c={id:"concepts/glossary",title:"Glossary",description:"Glossary Sections",source:"@site/docs/concepts/glossary.md",sourceDirName:"concepts",slug:"/concepts/glossary",permalink:"/docs/concepts/glossary",draft:!1,unlisted:!1,editUrl:"https://github.com/nervosnetwork/docs-new/tree/develop/website/docs/concepts/glossary.md",tags:[],version:"current",lastUpdatedAt:1713875854,formattedLastUpdatedAt:"Apr 23, 2024",sidebarPosition:7,frontMatter:{id:"glossary",title:"Glossary",sidebar_position:7},sidebar:"tutorial",previous:{title:"Tokenomics",permalink:"/docs/concepts/economics"},next:{title:"Ecosystem",permalink:"/docs/ecosystem"}},h={},t=[{value:"Glossary Sections",id:"glossary-sections",level:2},{value:"General Glossary",id:"general-glossary",level:2},{value:"Account",id:"account",level:3},{value:"Address",id:"address",level:3},{value:"Synonyms",id:"synonyms",level:4},{value:"Asset",id:"asset",level:3},{value:"Synonyms",id:"synonyms-1",level:4},{value:"Block",id:"block",level:3},{value:"See Also",id:"see-also",level:4},{value:"Block Height",id:"block-height",level:3},{value:"Synonyms",id:"synonyms-2",level:4},{value:"See Also",id:"see-also-1",level:4},{value:"Block Interval",id:"block-interval",level:3},{value:"Synonyms",id:"synonyms-3",level:4},{value:"See Also",id:"see-also-2",level:4},{value:"Block Propagation",id:"block-propagation",level:3},{value:"Synonyms",id:"synonyms-4",level:4},{value:"See Also",id:"see-also-3",level:4},{value:"Block Reward",id:"block-reward",level:3},{value:"See Also",id:"see-also-4",level:4},{value:"Block Time",id:"block-time",level:3},{value:"Synonyms",id:"synonyms-5",level:4},{value:"Blockchain",id:"blockchain",level:3},{value:"See Also",id:"see-also-5",level:4},{value:"BLS Signature",id:"bls-signature",level:3},{value:"See Also",id:"see-also-6",level:4},{value:"Broadcast",id:"broadcast",level:3},{value:"See Also",id:"see-also-7",level:4},{value:"Capacity",id:"capacity",level:3},{value:"Synonyms",id:"synonyms-6",level:4},{value:"See Also",id:"see-also-8",level:4},{value:"Cell",id:"cell",level:3},{value:"Synonyms",id:"synonyms-7",level:4},{value:"See Also",id:"see-also-9",level:4},{value:"Cell Model",id:"cell-model",level:3},{value:"See Also",id:"see-also-10",level:4},{value:"Censorship Resistance",id:"censorship-resistance",level:3},{value:"Chain",id:"chain",level:3},{value:"Synonyms",id:"synonyms-8",level:4},{value:"CKB",id:"ckb",level:3},{value:"Synonyms",id:"synonyms-9",level:4},{value:"CKByte",id:"ckbyte",level:3},{value:"Synonyms",id:"synonyms-10",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with",level:4},{value:"CKB-VM",id:"ckb-vm",level:3},{value:"See Also",id:"see-also-11",level:4},{value:"Code Hash",id:"code-hash",level:3},{value:"See Also",id:"see-also-12",level:4},{value:"Cold Storage",id:"cold-storage",level:3},{value:"See Also",id:"see-also-13",level:4},{value:"Cold Wallet",id:"cold-wallet",level:3},{value:"See Also",id:"see-also-14",level:4},{value:"Commit",id:"commit",level:3},{value:"Commit-Chain",id:"commit-chain",level:3},{value:"Commit Reward",id:"commit-reward",level:3},{value:"Common Knowledge Base",id:"common-knowledge-base",level:3},{value:"Synonyms",id:"synonyms-11",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-1",level:4},{value:"See Also",id:"see-also-15",level:4},{value:"Common Knowledge Byte",id:"common-knowledge-byte",level:3},{value:"Synonyms",id:"synonyms-12",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-2",level:4},{value:"See Also",id:"see-also-16",level:4},{value:"Confirmation",id:"confirmation",level:3},{value:"See Also",id:"see-also-17",level:4},{value:"Consensus",id:"consensus",level:3},{value:"See Also",id:"see-also-18",level:4},{value:"Consume",id:"consume",level:3},{value:"Contract Account",id:"contract-account",level:3},{value:"See Also",id:"see-also-19",level:4},{value:"Cryptocurrency",id:"cryptocurrency",level:3},{value:"See Also",id:"see-also-20",level:4},{value:"Cryptographic Signature",id:"cryptographic-signature",level:3},{value:"Synonyms",id:"synonyms-13",level:4},{value:"Cryptography",id:"cryptography",level:3},{value:"See Also",id:"see-also-21",level:4},{value:"Cycles",id:"cycles",level:3},{value:"See Also",id:"see-also-22",level:4},{value:"DAO",id:"dao",level:3},{value:"See Also",id:"see-also-23",level:4},{value:"DApp",id:"dapp",level:3},{value:"Data",id:"data",level:3},{value:"See Also",id:"see-also-24",level:4},{value:"Decentralization",id:"decentralization",level:3},{value:"See Also",id:"see-also-25",level:4},{value:"DeFi",id:"defi",level:3},{value:"Digital Asset",id:"digital-asset",level:3},{value:"Synonyms",id:"synonyms-14",level:4},{value:"Digital Currency",id:"digital-currency",level:3},{value:"See Also",id:"see-also-26",level:4},{value:"Distributed",id:"distributed",level:3},{value:"See Also",id:"see-also-27",level:4},{value:"Digital Object (DOB)",id:"digital-object-dob",level:3},{value:"See Also",id:"see-also-28",level:4},{value:"Double-Spending",id:"double-spending",level:3},{value:"See Also",id:"see-also-29",level:4},{value:"Epoch",id:"epoch",level:3},{value:"See Also",id:"see-also-30",level:4},{value:"Fee",id:"fee",level:3},{value:"See Also",id:"see-also-31",level:4},{value:"Fee Rate",id:"fee-rate",level:3},{value:"See Also",id:"see-also-32",level:4},{value:"First-Class Assets",id:"first-class-assets",level:3},{value:"See Also",id:"see-also-33",level:4},{value:"Fork",id:"fork",level:3},{value:"Full Node",id:"full-node",level:3},{value:"See Also",id:"see-also-34",level:4},{value:"Full Payload Format",id:"full-payload-format",level:3},{value:"See Also",id:"see-also-35",level:4},{value:"Fungible Token",id:"fungible-token",level:3},{value:"See Also",id:"see-also-36",level:4},{value:"Gas Limit",id:"gas-limit",level:3},{value:"See Also",id:"see-also-37",level:4},{value:"Hard-Fork",id:"hard-fork",level:3},{value:"Hardware Wallet",id:"hardware-wallet",level:3},{value:"See Also",id:"see-also-38",level:4},{value:"Hash",id:"hash",level:3},{value:"Hash Rate",id:"hash-rate",level:3},{value:"See Also",id:"see-also-39",level:4},{value:"Height",id:"height",level:3},{value:"Synonyms",id:"synonyms-15",level:4},{value:"Light Client",id:"light-client",level:3},{value:"Light Node",id:"light-node",level:3},{value:"See Also",id:"see-also-40",level:4},{value:"Mempool",id:"mempool",level:3},{value:"See Also",id:"see-also-41",level:4},{value:"Metadata",id:"metadata",level:3},{value:"See Also",id:"see-also-42",level:4},{value:"Micro-State",id:"micro-state",level:3},{value:"Synonyms",id:"synonyms-16",level:4},{value:"See Also",id:"see-also-43",level:4},{value:"Miner",id:"miner",level:3},{value:"See Also",id:"see-also-44",level:4},{value:"Miner Fee",id:"miner-fee",level:3},{value:"Synonyms",id:"synonyms-17",level:4},{value:"Mining",id:"mining",level:3},{value:"See Also",id:"see-also-45",level:4},{value:"Mining Node",id:"mining-node",level:3},{value:"See Also",id:"see-also-46",level:4},{value:"Mining Reward",id:"mining-reward",level:3},{value:"See Also",id:"see-also-47",level:4},{value:"Multisig",id:"multisig",level:3},{value:"Native Token",id:"native-token",level:3},{value:"See Also",id:"see-also-48",level:4},{value:"NC-MAX",id:"nc-max",level:3},{value:"See Also",id:"see-also-49",level:4},{value:"Neighbor",id:"neighbor",level:3},{value:"See Also",id:"see-also-50",level:4},{value:"Nervos Blockchain",id:"nervos-blockchain",level:3},{value:"Synonyms",id:"synonyms-18",level:4},{value:"Nervos DAO",id:"nervos-dao",level:3},{value:"See Also",id:"see-also-51",level:4},{value:"Network Hash Rate",id:"network-hash-rate",level:3},{value:"See Also",id:"see-also-52",level:4},{value:"Node",id:"node",level:3},{value:"See Also",id:"see-also-53",level:4},{value:"Nonce",id:"nonce",level:3},{value:"See Also",id:"see-also-54",level:4},{value:"Non-Fungible Token",id:"non-fungible-token",level:3},{value:"See Also",id:"see-also-55",level:4},{value:"Open Source",id:"open-source",level:3},{value:"See Also",id:"see-also-56",level:4},{value:"P2P",id:"p2p",level:3},{value:"Synonyms",id:"synonyms-19",level:4},{value:"Paper Wallet",id:"paper-wallet",level:3},{value:"See Also",id:"see-also-57",level:4},{value:"Payment Address",id:"payment-address",level:3},{value:"Synonyms",id:"synonyms-20",level:4},{value:"Payment Channel",id:"payment-channel",level:3},{value:"See Also",id:"see-also-58",level:4},{value:"Peer to Peer",id:"peer-to-peer",level:3},{value:"Synonyms",id:"synonyms-21",level:4},{value:"See Also",id:"see-also-59",level:4},{value:"Private Key",id:"private-key",level:3},{value:"See Also",id:"see-also-60",level:4},{value:"Proof of Work",id:"proof-of-work",level:3},{value:"See Also",id:"see-also-61",level:4},{value:"Proof of Stake",id:"proof-of-stake",level:3},{value:"See Also",id:"see-also-62",level:4},{value:"Propagation",id:"propagation",level:3},{value:"Synonyms",id:"synonyms-22",level:4},{value:"Public Key",id:"public-key",level:3},{value:"See Also",id:"see-also-63",level:4},{value:"Reward",id:"reward",level:3},{value:"See Also",id:"see-also-64",level:4},{value:"Signature",id:"signature",level:3},{value:"Synonyms",id:"synonyms-23",level:4},{value:"Smart Contract",id:"smart-contract",level:3},{value:"State",id:"state",level:3},{value:"See Also",id:"see-also-65",level:4},{value:"State Bloat",id:"state-bloat",level:3},{value:"State Channel",id:"state-channel",level:3},{value:"Tip",id:"tip",level:3},{value:"Synonyms",id:"synonyms-24",level:4},{value:"Tip Block",id:"tip-block",level:3},{value:"Synonyms",id:"synonyms-25",level:4},{value:"See Also",id:"see-also-66",level:4},{value:"Transaction",id:"transaction",level:3},{value:"See Also",id:"see-also-67",level:4},{value:"Transaction Fee",id:"transaction-fee",level:3},{value:"Synonyms",id:"synonyms-26",level:4},{value:"See Also",id:"see-also-68",level:4},{value:"Token",id:"token",level:3},{value:"See Also",id:"see-also-69",level:4},{value:"Turing Complete",id:"turing-complete",level:3},{value:"UDT",id:"udt",level:3},{value:"Synonyms",id:"synonyms-27",level:4},{value:"Unconfirmed",id:"unconfirmed",level:3},{value:"Synonyms",id:"synonyms-28",level:4},{value:"See Also",id:"see-also-70",level:4},{value:"Unconfirmed Transaction",id:"unconfirmed-transaction",level:3},{value:"Synonyms",id:"synonyms-29",level:4},{value:"See Also",id:"see-also-71",level:4},{value:"User-Defined Token",id:"user-defined-token",level:3},{value:"Synonyms",id:"synonyms-30",level:4},{value:"See Also",id:"see-also-72",level:4},{value:"Wallet",id:"wallet",level:3},{value:"See Also",id:"see-also-73",level:4},{value:"Economics Glossary",id:"economics-glossary",level:2},{value:"Base Issuance",id:"base-issuance",level:3},{value:"See Also",id:"see-also-74",level:4},{value:"Base Reward",id:"base-reward",level:3},{value:"See Also",id:"see-also-75",level:4},{value:"Commit Reward",id:"commit-reward-1",level:3},{value:"See Also",id:"see-also-76",level:4},{value:"Economic Abstraction",id:"economic-abstraction",level:3},{value:"Fiat Currency",id:"fiat-currency",level:3},{value:"See Also",id:"see-also-77",level:4},{value:"Heavy Asset Problem",id:"heavy-asset-problem",level:3},{value:"See Also",id:"see-also-78",level:4},{value:"Liquidity",id:"liquidity",level:3},{value:"See Also",id:"see-also-79",level:4},{value:"Proposal Reward",id:"proposal-reward",level:3},{value:"See Also",id:"see-also-80",level:4},{value:"Secondary Issuance",id:"secondary-issuance",level:3},{value:"See Also",id:"see-also-81",level:4},{value:"Secondary Reward",id:"secondary-reward",level:3},{value:"See Also",id:"see-also-82",level:4},{value:"Selfish Mining Attack",id:"selfish-mining-attack",level:3},{value:"See Also",id:"see-also-83",level:4},{value:"Starving Layer 1 Problem",id:"starving-layer-1-problem",level:3},{value:"See Also",id:"see-also-84",level:4},{value:"State Rent",id:"state-rent",level:3},{value:"See Also",id:"see-also-85",level:4},{value:"Store of Assets",id:"store-of-assets",level:3},{value:"See Also",id:"see-also-86",level:4},{value:"Store of Value",id:"store-of-value",level:3},{value:"See Also",id:"see-also-87",level:4},{value:"Tail Emission",id:"tail-emission",level:3},{value:"See Also",id:"see-also-88",level:4},{value:"Targeted Inflation",id:"targeted-inflation",level:3},{value:"See Also",id:"see-also-89",level:4},{value:"Tragedy of the Commons",id:"tragedy-of-the-commons",level:3},{value:"See Also",id:"see-also-90",level:4},{value:"Tragedy of the Security Commons",id:"tragedy-of-the-security-commons",level:3},{value:"See Also",id:"see-also-91",level:4},{value:"Tragedy of the Storage Commons",id:"tragedy-of-the-storage-commons",level:3},{value:"See Also",id:"see-also-92",level:4},{value:"Technical Glossary",id:"technical-glossary",level:2},{value:"Active Cell",id:"active-cell",level:3},{value:"Synonyms",id:"synonyms-31",level:4},{value:"See Also",id:"see-also-93",level:4},{value:"Aggron",id:"aggron",level:3},{value:"Synonyms",id:"synonyms-32",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-3",level:4},{value:"Animagus",id:"animagus",level:3},{value:"See Also",id:"see-also-94",level:4},{value:"Args",id:"args",level:3},{value:"See Also",id:"see-also-95",level:4},{value:"Axon",id:"axon",level:3},{value:"See Also",id:"see-also-96",level:4},{value:"Blake2b",id:"blake2b",level:3},{value:"See Also",id:"see-also-97",level:4},{value:"Block Subsidy",id:"block-subsidy",level:3},{value:"Synonyms",id:"synonyms-33",level:4},{value:"Boxer",id:"boxer",level:3},{value:"See Also",id:"see-also-98",level:4},{value:"block_version
",id:"block_version",level:3},{value:"See Also",id:"see-also-99",level:4},{value:"Cell Collection",id:"cell-collection",level:3},{value:"See Also",id:"see-also-100",level:4},{value:"Cellbase",id:"cellbase",level:3},{value:"See Also",id:"see-also-101",level:4},{value:"cellbase_maturity
",id:"cellbase_maturity",level:3},{value:"See Also",id:"see-also-102",level:4},{value:"cell_deps
",id:"cell_deps",level:3},{value:"See Also",id:"see-also-103",level:4},{value:"Ckbhash",id:"ckbhash",level:3},{value:"See Also",id:"see-also-104",level:4},{value:"CKB Merkle Tree",id:"ckb-merkle-tree",level:3},{value:"See Also",id:"see-also-105",level:4},{value:"Code Hash",id:"code-hash-1",level:3},{value:"See Also",id:"see-also-106",level:4},{value:"Commit",id:"commit-1",level:3},{value:"See Also",id:"see-also-107",level:4},{value:"Commitment Zone",id:"commitment-zone",level:3},{value:"See Also",id:"see-also-108",level:4},{value:"Consume",id:"consume-1",level:3},{value:"See Also",id:"see-also-109",level:4},{value:"Crypto Primitives",id:"crypto-primitives",level:3},{value:"See Also",id:"see-also-110",level:4},{value:"dao_type_hash
",id:"dao_type_hash",level:3},{value:"See Also",id:"see-also-111",level:4},{value:"Data",id:"data-1",level:3},{value:"See Also",id:"see-also-112",level:4},{value:"Dead Cell",id:"dead-cell",level:3},{value:"Synonyms",id:"synonyms-34",level:4},{value:"See Also",id:"see-also-113",level:4},{value:"Dep Group",id:"dep-group",level:3},{value:"See Also",id:"see-also-114",level:4},{value:"Dep Type",id:"dep-type",level:3},{value:"See Also",id:"see-also-115",level:4},{value:"Deps",id:"deps",level:3},{value:"Synonyms",id:"synonyms-35",level:4},{value:"Dependencies",id:"dependencies",level:3},{value:"Synonyms",id:"synonyms-36",level:4},{value:"See Also",id:"see-also-116",level:4},{value:"Duktape",id:"duktape",level:3},{value:"See Also",id:"see-also-117",level:4},{value:"Difficulty",id:"difficulty",level:3},{value:"See Also",id:"see-also-118",level:4},{value:"Diviner",id:"diviner",level:3},{value:"See Also",id:"see-also-119",level:4},{value:"Eaglesong",id:"eaglesong",level:3},{value:"See Also",id:"see-also-120",level:4},{value:"epoch_duration_target
",id:"epoch_duration_target",level:3},{value:"See Also",id:"see-also-121",level:4},{value:"ERC20",id:"erc20",level:3},{value:"See Also",id:"see-also-122",level:4},{value:"ERC721",id:"erc721",level:3},{value:"See Also",id:"see-also-123",level:4},{value:"ERC777",id:"erc777",level:3},{value:"See Also",id:"see-also-124",level:4},{value:"ERC1155",id:"erc1155",level:3},{value:"See Also",id:"see-also-125",level:4},{value:"Full Address",id:"full-address",level:3},{value:"See Also",id:"see-also-126",level:4},{value:"Generator",id:"generator",level:3},{value:"Genesis Block",id:"genesis-block",level:3},{value:"See Also",id:"see-also-127",level:4},{value:"genesis_hash
",id:"genesis_hash",level:3},{value:"See Also",id:"see-also-128",level:4},{value:"Godwoken",id:"godwoken",level:3},{value:"See Also",id:"see-also-129",level:4},{value:"Governance Script",id:"governance-script",level:3},{value:"See Also",id:"see-also-130",level:4},{value:"Governance Script Hash",id:"governance-script-hash",level:3},{value:"Synonyms",id:"synonyms-37",level:4},{value:"See Also",id:"see-also-131",level:4},{value:"Historical Cell",id:"historical-cell",level:3},{value:"Synonyms",id:"synonyms-38",level:4},{value:"See Also",id:"see-also-132",level:4},{value:"Inbound Connection",id:"inbound-connection",level:3},{value:"See Also",id:"see-also-133",level:4},{value:"Indexer",id:"indexer",level:3},{value:"See Also",id:"see-also-134",level:4},{value:"initial_primary_epoch_reward
",id:"initial_primary_epoch_reward",level:3},{value:"See Also",id:"see-also-135",level:4},{value:"Input",id:"input",level:3},{value:"See Also",id:"see-also-136",level:4},{value:"Keyper",id:"keyper",level:3},{value:"See Also",id:"see-also-137",level:4},{value:"Late Spawning",id:"late-spawning",level:3},{value:"See Also",id:"see-also-138",level:4},{value:"Layer 1",id:"layer-1",level:3},{value:"See Also",id:"see-also-139",level:4},{value:"Layer 2",id:"layer-2",level:3},{value:"See Also",id:"see-also-140",level:4},{value:"Lina",id:"lina",level:3},{value:"Synonyms",id:"synonyms-39",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-4",level:4},{value:"See Also",id:"see-also-141",level:4},{value:"Live Cell",id:"live-cell",level:3},{value:"Synonyms",id:"synonyms-40",level:4},{value:"See Also",id:"see-also-142",level:4},{value:"Lock",id:"lock",level:3},{value:"See Also",id:"see-also-143",level:4},{value:"Lock Script",id:"lock-script",level:3},{value:"See Also",id:"see-also-144",level:4},{value:"Lock Script Hash",id:"lock-script-hash",level:3},{value:"See Also",id:"see-also-145",level:4},{value:"Mainnet",id:"mainnet",level:3},{value:"Synonyms",id:"synonyms-41",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-5",level:4},{value:"max_block_bytes
",id:"max_block_bytes",level:3},{value:"max_block_cycles
",id:"max_block_cycles",level:3},{value:"See Also",id:"see-also-146",level:4},{value:"max_block_proposals_limit
",id:"max_block_proposals_limit",level:3},{value:"See Also",id:"see-also-147",level:4},{value:"max_uncles_num
",id:"max_uncles_num",level:3},{value:"See Also",id:"see-also-148",level:4},{value:"median_time_block_count
",id:"median_time_block_count",level:3},{value:"Minting",id:"minting",level:3},{value:"See Also",id:"see-also-149",level:4},{value:"Molecule",id:"molecule",level:3},{value:"See Also",id:"see-also-150",level:4},{value:"Muta",id:"muta",level:3},{value:"See Also",id:"see-also-151",level:4},{value:"Nervos CKB",id:"nervos-ckb",level:3},{value:"Synonyms",id:"synonyms-42",level:4},{value:"See Also",id:"see-also-152",level:4},{value:"Off-Chain Computation",id:"off-chain-computation",level:3},{value:"See Also",id:"see-also-153",level:4},{value:"Off-Chain Scaling",id:"off-chain-scaling",level:3},{value:"See Also",id:"see-also-154",level:4},{value:"Off-Chain State",id:"off-chain-state",level:3},{value:"See Also",id:"see-also-155",level:4},{value:"On-Chain Computation",id:"on-chain-computation",level:3},{value:"See Also",id:"see-also-156",level:4},{value:"On-Chain Scaling",id:"on-chain-scaling",level:3},{value:"See Also",id:"see-also-157",level:4},{value:"On-Chain State",id:"on-chain-state",level:3},{value:"See Also",id:"see-also-158",level:4},{value:"On-Chain Verification",id:"on-chain-verification",level:3},{value:"See Also",id:"see-also-159",level:4},{value:"Open Transaction",id:"open-transaction",level:3},{value:"See Also",id:"see-also-160",level:4},{value:"Optimistic Rollup",id:"optimistic-rollup",level:3},{value:"See Also",id:"see-also-161",level:4},{value:"Orphan",id:"orphan",level:3},{value:"Synonyms",id:"synonyms-43",level:4},{value:"Orphan Block",id:"orphan-block",level:3},{value:"Synonyms",id:"synonyms-44",level:4},{value:"See Also",id:"see-also-162",level:4},{value:"Orphan Rate",id:"orphan-rate",level:3},{value:"See Also",id:"see-also-163",level:4},{value:"orphan_rate_target
",id:"orphan_rate_target",level:3},{value:"See Also",id:"see-also-164",level:4},{value:"Orphan Transactions",id:"orphan-transactions",level:3},{value:"See Also",id:"see-also-165",level:4},{value:"Outbound Connection",id:"outbound-connection",level:3},{value:"See Also",id:"see-also-166",level:4},{value:"Outpoint",id:"outpoint",level:3},{value:"See Also",id:"see-also-167",level:4},{value:"Output",id:"output",level:3},{value:"See Also",id:"see-also-168",level:4},{value:"Overlord",id:"overlord",level:3},{value:"See Also",id:"see-also-169",level:4},{value:"P2WSH",id:"p2wsh",level:3},{value:"permanent_difficulty_in_dummy
",id:"permanent_difficulty_in_dummy",level:3},{value:"See Also",id:"see-also-170",level:4},{value:"Polyjuice",id:"polyjuice",level:3},{value:"See Also",id:"see-also-171",level:4},{value:"primary_epoch_reward_halving_interval
",id:"primary_epoch_reward_halving_interval",level:3},{value:"See Also",id:"see-also-172",level:4},{value:"Proposal Zone",id:"proposal-zone",level:3},{value:"See Also",id:"see-also-173",level:4},{value:"Propose",id:"propose",level:3},{value:"See Also",id:"see-also-174",level:4},{value:"proposer_reward_ratio
",id:"proposer_reward_ratio",level:3},{value:"See Also",id:"see-also-175",level:4},{value:"RISC-V",id:"risc-v",level:3},{value:"See Also",id:"see-also-176",level:4},{value:"Schnorr Signature",id:"schnorr-signature",level:3},{value:"See Also",id:"see-also-177",level:4},{value:"Script",id:"script",level:3},{value:"See Also",id:"see-also-178",level:4},{value:"secondary_epoch_reward
",id:"secondary_epoch_reward",level:3},{value:"See also",id:"see-also-179",level:4},{value:"secp256k1_blake160_sighash_all_type_hash
",id:"secp256k1_blake160_sighash_all_type_hash",level:3},{value:"secp256k1_blake160_multisig_all_type_hash
",id:"secp256k1_blake160_multisig_all_type_hash",level:3},{value:"Seed Cell",id:"seed-cell",level:3},{value:"See Also",id:"see-also-180",level:4},{value:"Shannon",id:"shannon",level:3},{value:"See Also",id:"see-also-181",level:4},{value:"Short Address",id:"short-address",level:3},{value:"Synonyms",id:"synonyms-45",level:4},{value:"See Also",id:"see-also-182",level:4},{value:"Simple UDT",id:"simple-udt",level:3},{value:"Synonyms",id:"synonyms-46",level:4},{value:"See Also",id:"see-also-183",level:4},{value:"Since",id:"since",level:3},{value:"See Also",id:"see-also-184",level:4},{value:"SPV",id:"spv",level:3},{value:"See Also",id:"see-also-185",level:4},{value:"SPV Wallet",id:"spv-wallet",level:3},{value:"See Also",id:"see-also-186",level:4},{value:"SUDT",id:"sudt",level:3},{value:"Synonyms",id:"synonyms-47",level:4},{value:"Testnet",id:"testnet",level:3},{value:"Synonyms",id:"synonyms-48",level:4},{value:"Not To Be Confused With",id:"not-to-be-confused-with-6",level:4},{value:"Transaction Confirmation Number",id:"transaction-confirmation-number",level:3},{value:"See Also",id:"see-also-187",level:4},{value:"Transaction Hash",id:"transaction-hash",level:3},{value:"See Also",id:"see-also-188",level:4},{value:"Transaction Witness Hash",id:"transaction-witness-hash",level:3},{value:"See Also",id:"see-also-189",level:4},{value:"Transaction Root",id:"transaction-root",level:3},{value:"See Also",id:"see-also-190",level:4},{value:"tx_proposal_window
",id:"tx_proposal_window",level:3},{value:"tx_version
",id:"tx_version",level:3},{value:"type_id
",id:"type_id",level:3},{value:"See Also",id:"see-also-191",level:4},{value:"type_id_code_hash
",id:"type_id_code_hash",level:3},{value:"See Also",id:"see-also-192",level:4},{value:"Type Script",id:"type-script",level:3},{value:"See Also",id:"see-also-193",level:4},{value:"Type Script Hash",id:"type-script-hash",level:3},{value:"See Also",id:"see-also-194",level:4},{value:"Uncle",id:"uncle",level:3},{value:"See Also",id:"see-also-195",level:4},{value:"Synonyms",id:"synonyms-49",level:4},{value:"See Also",id:"see-also-196",level:4},{value:"Uncle Rate",id:"uncle-rate",level:3},{value:"See Also",id:"see-also-197",level:4},{value:"Validator",id:"validator",level:3},{value:"See Also",id:"see-also-198",level:4},{value:"Witness",id:"witness",level:3},{value:"See Also",id:"see-also-199",level:4},{value:"XUDT",id:"xudt",level:3},{value:"See Also",id:"see-also-200",level:4},{value:"Zk-SNARK",id:"zk-snark",level:3},{value:"See Also",id:"see-also-201",level:4},{value:"Zk-STARK",id:"zk-stark",level:3},{value:"See Also",id:"see-also-202",level:4}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"glossary-sections",children:"Glossary Sections"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#general-glossary",children:"General Glossary"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#economics-glossary",children:"Economics Glossary"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#technical-glossary",children:"Technical Glossary"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"general-glossary",children:"General Glossary"}),"\n",(0,i.jsx)(n.h3,{id:"account",children:"Account"}),"\n",(0,i.jsx)(n.p,{children:"A kind of basic object in distributed ledger used to keep the balance and other information of users."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"address",children:"Address"}),"\n",(0,i.jsx)(n.p,{children:"A label consists of string of letters and numbers that anonymously represents user's identity on chain. Crypto assets can be sent to and/or from addresses."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#payment-address",children:"Payment Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"asset",children:"Asset"}),"\n",(0,i.jsx)(n.p,{children:"A piece of data that has value or that represents an entity having value."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-1",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block",children:"Block"}),"\n",(0,i.jsx)(n.p,{children:"A grouping of transactions, marked with a timestamp, and a fingerprint of the previous block. The block header is hashed to produce a proof of work, thereby validating the transactions. Valid blocks are added to the main blockchain by network consensus."}),"\n",(0,i.jsx)(n.h4,{id:"see-also",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-height",children:"Block Height"}),"\n",(0,i.jsx)(n.p,{children:"Block height is the total number of blocks that have been confirmed on the blockchain, also used to identify a unique block when specifying a particular block height, as there is always an exact block at any block height."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-2",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#height",children:"Height"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-1",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-interval",children:"Block Interval"}),"\n",(0,i.jsxs)(n.p,{children:["Also known as ",(0,i.jsx)(n.a,{href:"#block-time",children:"Block Time"}),". Block interval is the length of time it takes to create a new block in a cryptocurrency blockchain. Block interval is the measure of the time it takes the miners or validators within a network to verify transactions within one block and produce a new block in that blockchain. The block interval is variable on Nervos blockchain."]}),"\n",(0,i.jsx)(n.p,{children:"The block interval on the Bitcoin blockchain is approximately every 10 minutes. The block interval on Nervos is variable, but is usually under 10 seconds."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-3",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-time",children:"Block Time"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-2",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-propagation",children:"Block Propagation"}),"\n",(0,i.jsx)(n.p,{children:"The process of synchronizing a new block to the majority of full nodes in the network. Block propagation is a well-known bottleneck that prevents Bitcoin from scaling."}),"\n",(0,i.jsx)(n.p,{children:"Block propagation time is an average time that is needed for the new block to reach the majority of nodes in the network. Long block propagation delay reduces the node's resistance against 51% attacks."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-4",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#propagation",children:"Propagation"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-3",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#broadcast",children:"Broadcast"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-reward",children:"Block Reward"}),"\n",(0,i.jsx)(n.p,{children:"The amount of cryptocurrency credited to a miner's account after the miner successfully adds a block of transactions to the blockchain."}),"\n",(0,i.jsx)(n.p,{children:"In Nervos CKB, block rewards are the CKBytes credited to a miner's account after a block is successfully added to CKB by the miner."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-4",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-subsidy",children:"Block Subsidy"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-time",children:"Block Time"}),"\n",(0,i.jsxs)(n.p,{children:["Alternatively referred to as ",(0,i.jsx)(n.a,{href:"#block-interval",children:"Block Interval"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-5",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-interval",children:"Block Interval"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blockchain",children:"Blockchain"}),"\n",(0,i.jsx)(n.p,{children:"A data structure maintaining a growing list of records, organized as a chain of blocks. Each block, apart from the first one, is cryptographically linked to the previous block, thus creating a chain-like structure."}),"\n",(0,i.jsx)(n.p,{children:"The cryptographic link ensures any party with the last block can verify that none of the historical data is modified after the creation of this block."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-5",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"bls-signature",children:"BLS Signature"}),"\n",(0,i.jsx)(n.p,{children:"A cryptographic signature scheme for signing and verification. BLS is short for Boneh\u2013Lynn\u2013Shacham."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-6",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Boneh%E2%80%93Lynn%E2%80%93Shacham",children:"Boneh\u2013Lynn\u2013Shacham on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"broadcast",children:"Broadcast"}),"\n",(0,i.jsx)(n.p,{children:"Blocks are sent to all nodes in a blockchain network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-7",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"capacity",children:"Capacity"}),"\n",(0,i.jsx)(n.p,{children:"The maximum space (in bytes) that a Cell can occupy on the Nervos CKB."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-6",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-8",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell",children:"Cell"}),"\n",(0,i.jsx)(n.p,{children:"All data on Nervos CKB is stored in Cells. Cells are the primary state units in CKB, within them users can include arbitrary states."}),"\n",(0,i.jsxs)(n.p,{children:["A Cell has 4 fields: ",(0,i.jsx)(n.code,{children:"capacity"}),", ",(0,i.jsx)(n.code,{children:"data"}),", ",(0,i.jsx)(n.code,{children:"type"})," and ",(0,i.jsx)(n.code,{children:"lock"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-7",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#micro-state",children:"Micro-State"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-9",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#data",children:"Data"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock",children:"Lock"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/concepts/cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell-model",children:"Cell Model"}),"\n",(0,i.jsx)(n.p,{children:"A representation of how state is managed on Nervos CKB. The Cell Model is a more generic state model than either Bitcoin's UTXO or Ethereum's account model."}),"\n",(0,i.jsx)(n.p,{children:"The Cell Model is a new construction that combines many of the advantages of Ethereum's account model with the asset ownership and proof-based verification properties of Bitcoin's UTXO model."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-10",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"/docs/concepts/cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/https-medium-com-nervosnetwork-cell-model-7323fca57571",children:"Cell Model on the Nervos Blog"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"censorship-resistance",children:"Censorship Resistance"}),"\n",(0,i.jsx)(n.p,{children:"Censorship resistance in blockchain generally means that it is difficult for a malicious party to prevent the blockchain from confirming a set of transactions generated by honest users."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"chain",children:"Chain"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-8",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckb",children:"CKB"}),"\n",(0,i.jsx)(n.p,{children:"An abbreviation which can have different meanings depending on the context:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Common Knowledge Base - The layer 1 blockchain of the Nervos Network."}),"\n",(0,i.jsx)(n.li,{children:"Common Knowledge Byte - The native token of the Nervos Common Knowledge Base."}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-9",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckbyte",children:"CKByte"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for Common Knowledge Byte."}),"\n",(0,i.jsx)(n.p,{children:"CKByte is also sometimes shortened to CKB. Exchanges often use CKB as the ticker symbol."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-10",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckb-vm",children:"CKB-VM"}),"\n",(0,i.jsx)(n.p,{children:"CKB VM is a crypto-agnostic virtual machine, a RISC-V instruction set based VM for executing both on-chain and off-chain code."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-11",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"RISC-V"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Virtual_machine",children:"Virtual Machine on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"code-hash",children:"Code Hash"}),"\n",(0,i.jsx)(n.p,{children:"A field in a Cell which contains a hash value that can refer to a specific piece of data, or a specific Cell referenced by Type ID."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-12",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type_id",children:"Type ID"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cold-storage",children:"Cold Storage"}),"\n",(0,i.jsx)(n.p,{children:"A method of securing funds by placing them in a cold wallet; a type of wallet that is never connected to the internet."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-13",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-wallet",children:"Cold Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#hardware-wallet",children:"Hardware Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cold-wallet",children:"Cold Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A wallet that is used to secure assets offline. This wallet is permanently disconnected from the internet, and not vulnerable to attacks which rely on an active internet connection."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-14",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-storage",children:"Cold Storage"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit",children:"Commit"}),"\n",(0,i.jsxs)(n.p,{children:["Nervos CKB's consensus algorithm, ",(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})," consensus, has two phases: ",(0,i.jsx)(n.strong,{children:"propose"})," and ",(0,i.jsx)(n.strong,{children:"commit"}),". Commit is the process of including a valid proposed transaction into a new block."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-chain",children:"Commit-Chain"}),"\n",(0,i.jsx)(n.p,{children:"A scheme that enables the off-chain processing of transactions by one or more operators with on-chain state update commitments that do not contain per-transaction data."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-reward",children:"Commit Reward"}),"\n",(0,i.jsx)(n.p,{children:"A reward paid to miners in CKBytes on inclusion of previously proposed transactions."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"common-knowledge-base",children:"Common Knowledge Base"}),"\n",(0,i.jsx)(n.p,{children:"A layer 1 proof of work blockchain that provides a foundation of decentralized trust for the Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-11",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-1",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-15",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.nervos.org/ckb/",children:"Nervos CKB on Nervos.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"common-knowledge-byte",children:"Common Knowledge Byte"}),"\n",(0,i.jsx)(n.p,{children:"The native token of the Nervos layer 1 blockchain, the Common Knowledge Base."}),"\n",(0,i.jsx)(n.p,{children:"Common Knowledge Byte is often abbreviated as CKByte or CKB."}),"\n",(0,i.jsx)(n.p,{children:"Owning a CKByte entitles the holder to store one byte of data on the Nervos CKB blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-12",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-2",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-16",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#capacity",children:"Capacity"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#shannon",children:"Shannon"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"confirmation",children:"Confirmation"}),"\n",(0,i.jsx)(n.p,{children:"A process where a transaction has been accepted and verified by the network and included in a block."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-17",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#unconfirmed",children:"Unconfirmed"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"consensus",children:"Consensus"}),"\n",(0,i.jsx)(n.p,{children:"An algorithm executed among a number of distributed participants, ensuring that all participants faithfully executing this algorithm can reach agreement on some data value even if the other participants are faulty or malicious."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-18",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-MAX"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"consume",children:"Consume"}),"\n",(0,i.jsx)(n.p,{children:"The process of using a Live Cell as an input to a transaction. The consumption processes indicate that Live Cell turns into a Dead Cell."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"contract-account",children:"Contract Account"}),"\n",(0,i.jsx)(n.p,{children:"An account containing code that executes automatically whenever it receives an event from another account."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-19",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#account",children:"Account"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cryptocurrency",children:"Cryptocurrency"}),"\n",(0,i.jsx)(n.p,{children:"A cryptocurrency is a digital or virtual currency that is secured by blockchain and cryptography, which makes it nearly impossible to counterfeit or double-spend."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-20",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-currency",children:"Digital Currency"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fiat-currency",children:"Fiat Currency"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cryptographic-signature",children:"Cryptographic Signature"}),"\n",(0,i.jsx)(n.p,{children:"A concise piece of proof data. Cryptographic signature schemes are a fundamental component of cryptocurrency networks that verify the integrity and non-repudiation of transaction messages across the network."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-13",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#signature",children:"Signature"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cryptography",children:"Cryptography"}),"\n",(0,i.jsx)(n.p,{children:"Cryptography is the practice and study of techniques for secure communication in the presence of adversarial behavior."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-21",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cryptography",children:"Cryptography at Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cycles",children:"Cycles"}),"\n",(0,i.jsx)(n.p,{children:"The number of RISC-V computational cycles required by a script to execute. It's a metric used to prevent malicious behavior such as infinite loops, that's why it is called cycles."}),"\n",(0,i.jsx)(n.p,{children:"This is a similar concept to Ethereum's Gas, we set cycles to ensure optimal performance and security. Scripts must stay within cycle limits, otherwise the block will be rejected by CKB nodes."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-22",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://nervos-ckb-docs-git-v1-cryptape.vercel.app/docs/essays/faq/#estimate-cycles",children:"Estimate cycles"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#max_block_cycles",children:"Max_block_cycles"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0014-vm-cycle-limits/0014-vm-cycle-limits.md",children:"Rules for calculating cycles in RFC on Nervos Network Github"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"RISC-V"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://ethereum.org/en/glossary/#gas",children:"Ethereum's Gas"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dao",children:"DAO"}),"\n",(0,i.jsx)(n.p,{children:"A decentralized autonomous organization (DAO) is an organization represented by rules encoded as a computer program that is transparent, controlled by the organization members and not influenced by a centralized entity, in other words they are member-owned communities without centralized leadership. A DAO's financial transaction record and program rules are maintained on a blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-23",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Decentralized_autonomous_organization",children:"DAO on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dapp",children:"DApp"}),"\n",(0,i.jsx)(n.p,{children:"Decentralized application. At a minimum, it is a smart contract and a web user interface. In a broader sense, dApps are web applications that are built on top of open, decentralized, peer-to-peer infrastructure services. Additionally, many dApps include decentralized storage and/or a message protocol and platform."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"data",children:"Data"}),"\n",(0,i.jsxs)(n.p,{children:["In Cell Model, ",(0,i.jsx)(n.code,{children:"data"})," is a field in a Cell which can store arbitrary bytes."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-24",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"decentralization",children:"Decentralization"}),"\n",(0,i.jsx)(n.p,{children:"In blockchain, decentralization refers to the transfer of control and decision-making from a centralized entity (individual, organization, or group thereof) to a distributed network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-25",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#distributed",children:"Distributed"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Decentralization",children:"Decentralization on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"defi",children:"DeFi"}),"\n",(0,i.jsx)(n.p,{children:'Short for "decentralized finance", a broad category of dApps aiming to provide financial services backed by the blockchain, without any intermediaries, so anyone with an internet connection can participate.'}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"digital-asset",children:"Digital Asset"}),"\n",(0,i.jsx)(n.p,{children:"A digital asset is an individual piece of data that has value, or represents another entity that has value."}),"\n",(0,i.jsx)(n.p,{children:"Digital assets are most commonly represented as tokens, which may be used as digital currency or represent physical items such as real estate."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-14",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#asset",children:"Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"digital-currency",children:"Digital Currency"}),"\n",(0,i.jsx)(n.p,{children:"A type of currency that primarily exists digitally over the internet. Physical representations of the currency, in the form of cards, bills, or coins, may exist, but are secondary mediums."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-26",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptocurrency",children:"Cryptocurrency"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"distributed",children:"Distributed"}),"\n",(0,i.jsx)(n.p,{children:"A system where components are spread across multiple nodes to parallelize workloads, add redundancy, or eliminate single points of failure."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-27",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#decentralization",children:"Decentralization"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"digital-object-dob",children:"Digital Object (DOB)"}),"\n",(0,i.jsx)(n.p,{children:"A non-fungible encrypted asset with its content fully stored on-chain, establishing an intrinsic link between content and value."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-28",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible-Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"double-spending",children:"Double-Spending"}),"\n",(0,i.jsx)(n.p,{children:"Double-spending is the risk that a digital token is spent twice or more. In the context of blockchain, it happens when the transaction spending a digital token is cancelled after confirmation, and the same token is spent in another transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-29",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptocurrency",children:"Cryptocurrency"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"epoch",children:"Epoch"}),"\n",(0,i.jsx)(n.p,{children:"An epoch is a period of time for a set of blocks."}),"\n",(0,i.jsx)(n.p,{children:"In Nervos, the PoW difficulty changes on a new epoch. All the blocks in the same epoch share the same difficulty target. The difficulty adjustment algorithm aims to stabilize the orphan block rate at 2.5% and the epoch duration at 4 hours."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-30",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fee",children:"Fee"}),"\n",(0,i.jsxs)(n.p,{children:["The sender of a transaction often includes a fee to the network for processing the requested transaction. There's no minimum fee rate set in consensus, but there's a minimum fee rate 1,000 Shannons/KB in CKB's ",(0,i.jsx)(n.a,{href:"#p2p",children:"P2P"})," network. (1 Shannon = 10",(0,i.jsx)("sup",{children:"-8"})," CKB)"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-31",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#shannon",children:"Shannon"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fee-rate",children:"Fee rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/ckb/tree/develop/rpc#error-poolrejectedtransactionbyminfeerate",children:"Fee rate in RFC on Nervos Network Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fee-rate",children:"Fee Rate"}),"\n",(0,i.jsx)(n.p,{children:"A tip per byte that a user offers to the miners for including his transaction in a block on the blockchain."}),"\n",(0,i.jsxs)(n.p,{children:["This is a same concept to Bitcoin's ",(0,i.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/Miner_fees#Feerates",children:"Fee Rate(often spelled feerate)"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-32",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fee",children:"Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"first-class-assets",children:"First-Class Assets"}),"\n",(0,i.jsx)(n.p,{children:"Assets that 1. the asset itself (rather than a reference to the asset) can be passed directly in smart contract interactions, and 2. directly controlled by owners without any intermediaries."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-33",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/first-class-asset-ff4feaf370c4",children:"First-Class Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://talk.nervos.org/t/first-class-asset/1293",children:"Introduction to First-Class Asset"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fork",children:"Fork"}),"\n",(0,i.jsx)(n.p,{children:"A change in protocol causing the creation of an alternative chain, or a temporal divergence in two potential block paths during mining."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"full-node",children:"Full Node"}),"\n",(0,i.jsx)(n.p,{children:"A full node is an essential component of the CKB network. It stores and syncs the entire blockchain, verifies the validity of blocks and transactions, and enforces the network's consensus rules."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckb init --chain Mainnet && ckb run\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-34",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#light-node",children:"Light Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-node",children:"Mining Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"full-payload-format",children:"Full Payload Format"}),"\n",(0,i.jsxs)(n.p,{children:["The deprecated full payload format directly encodes all data field of lock script. The encode rule of deprecated full payload format is ",(0,i.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/Bech32",children:"Bech32"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-35",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fungible-token",children:"Fungible Token"}),"\n",(0,i.jsx)(n.p,{children:"A fungible token can be fiat currencies like the dollar or a cryptocurrency like Bitcoin."}),"\n",(0,i.jsx)(n.p,{children:"Fungible tokens or assets are divisible and non-unique."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-36",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"gas-limit",children:"Gas Limit"}),"\n",(0,i.jsx)(n.p,{children:"The maximum amount of gas a transaction or block may consume."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-37",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://ethereum.org/en/glossary/#gas",children:"Ethereum's Gas"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hard-fork",children:"Hard-Fork"}),"\n",(0,i.jsx)(n.p,{children:"A permanent divergence in the blockchain; also known as a hard-forking change. One commonly occurs when nonupgraded nodes can\u2019t validate blocks created by upgraded nodes that follow newer consensus rules. Not to be confused with a fork, soft fork, software fork, or Git fork."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hardware-wallet",children:"Hardware Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A hardware wallet is a form of cold wallet. A hardware wallet is a cryptocurrency wallet that stores the user's private keys (a critical piece of information used to authorize outgoing transactions on the blockchain network) in a secure hardware device."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-38",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-storage",children:"Cold Storage"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cold-wallet",children:"Cold Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hash",children:"Hash"}),"\n",(0,i.jsx)(n.p,{children:"A fixed-length fingerprint of variable-size input, produced by a hash function."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"hash-rate",children:"Hash Rate"}),"\n",(0,i.jsx)(n.p,{children:'Hash rate is a measure of the computational power per second used when mining. These operations are known as "hashing".'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-39",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#network-hash-rate",children:"Network Hash Rate"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"height",children:"Height"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for block height."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-15",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-height",children:"Block Height"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"light-client",children:"Light Client"}),"\n",(0,i.jsx)(n.p,{children:"As a low-resource node, a light client allows users to sync with a blockchain in a cryptographically secure manner without having to store the whole blockchain."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"light-node",children:"Light Node"}),"\n",(0,i.jsx)(n.p,{children:"A light node downloads only the headers of the blockchain, conserving resources. It relies on other nodes for full transaction data and is a lightweight option for network participation."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckb-light-client run --config-file ./testnet.toml\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-40",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-node",children:"Mining Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mempool",children:"Mempool"}),"\n",(0,i.jsx)(n.p,{children:'Short for "memory pool". A waiting area on full nodes for transactions that have been broadcasted to the network but have not yet been confirmed on the blockchain.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-41",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"metadata",children:"Metadata"}),"\n",(0,i.jsxs)(n.p,{children:["Metadata is data that provides information about other data. ",(0,i.jsx)(n.code,{children:"capacity"}),", ",(0,i.jsx)(n.code,{children:"type"})," and ",(0,i.jsx)(n.code,{children:"lock"})," in Cells are metadata, they occupy Cell capacity and incur a state cost as well."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-42",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#capacity",children:"Capacity"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock",children:"Lock"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"micro-state",children:"Micro-State"}),"\n",(0,i.jsx)(n.p,{children:"A small piece of state that is isolated and often able to be acted upon independently without knowing the total state of the network."}),"\n",(0,i.jsx)(n.p,{children:"On Nervos, micro-state is represented by a Cell."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-16",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-43",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#state",children:"State"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"miner",children:"Miner"}),"\n",(0,i.jsx)(n.p,{children:"A network node that finds valid proof of work for new blocks, by repeated hashing."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-44",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"miner-fee",children:"Miner Fee"}),"\n",(0,i.jsx)(n.p,{children:"Another term for transaction fee."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-17",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-fee",children:"Transaction Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mining",children:"Mining"}),"\n",(0,i.jsx)(n.p,{children:"Mining is the process by which a blockchain node get new token reward by verifying new transactions, finding valid proof of work and creating new blocks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-45",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mining-node",children:"Mining Node"}),"\n",(0,i.jsx)(n.p,{children:"Mining nodes create new blocks by solving computational puzzles. They contribute to the network's security and consensus by actively validating and adding blocks to the blockchain."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckb init --chain Mainnet && ckb miner\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-46",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining",children:"Mining"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#light-node",children:"Light Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mining-reward",children:"Mining Reward"}),"\n",(0,i.jsx)(n.p,{children:"Native tokens paid to miners as a reward for providing the necessary computing resources for mining."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-47",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining",children:"Mining"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#native-token",children:"Native Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"multisig",children:"Multisig"}),"\n",(0,i.jsx)(n.p,{children:"The term multisig stands for multi-signature, which is a specific type of digital signatures that can be created through the combination of multiple unique signatures."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"native-token",children:"Native Token"}),"\n",(0,i.jsx)(n.p,{children:"The token issued as reward to a blockchain's consensus nodes. Nervos CKB's native token is CKByte."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-48",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nc-max",children:"NC-MAX"}),"\n",(0,i.jsx)(n.p,{children:"Nervos CKB's consensus algorithm, which follows NC's backbone protocol. The main innovation here is a two-step transaction confirmation mechanism"}),"\n",(0,i.jsx)(n.h4,{id:"see-also-49",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eprint.iacr.org/2020/1101",children:"NC-MAC"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"neighbor",children:"Neighbor"}),"\n",(0,i.jsx)(n.p,{children:"A node that is directly connected to another node in the blockchain peer to peer network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-50",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#peer-to-peer",children:"Peer to Peer"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nervos-blockchain",children:"Nervos Blockchain"}),"\n",(0,i.jsx)(n.p,{children:"The layer 1 blockchain of the Nervos Network known as the Common Knowledge Base."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-18",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nervos-dao",children:"Nervos DAO"}),"\n",(0,i.jsx)(n.p,{children:'Nervos DAO enable users to lock CKBytes to get compensation from Nervos CKB secondary issuance. This process is similar to staking on other platforms. Nervos DAO provides a "virtual hardcap" for CKByte holders to insulate them from inflation.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-51",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dao",children:"DAO"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/nervos-dao-explained-95e33898b1c",children:"Nervos DAO Explained on the Nervos Blog"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Nervos DAO in RFC on Nervos Network Github"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://explorer.nervos.org/charts/inflation-rate",children:"Inflation Rate Chart"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"network-hash-rate",children:"Network Hash Rate"}),"\n",(0,i.jsx)(n.p,{children:"A measurement of the total computational processing power which is dedicated to providing security to the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-52",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#hash-rate",children:"Hash Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"node",children:"Node"}),"\n",(0,i.jsx)(n.p,{children:"A software client that participates in the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-53",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-node",children:"Full Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#light-node",children:"Light Node"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-node",children:"Mining Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nonce",children:"Nonce"}),"\n",(0,i.jsx)(n.p,{children:"In cryptography, a value that can only be used once. Nonce can refer to two things in blockchain context: 1. a proof-of-work nonce is the random value in a block satisfying the proof of work requirement; 2. an account nonce is a transaction counter in each account, which is used to prevent replay attacks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-54",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"non-fungible-token",children:"Non-Fungible Token"}),"\n",(0,i.jsx)(n.p,{children:"Non-fungible tokens or NFTs are cryptographic assets on a blockchain with unique identification codes and metadata that distinguish them from each other."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-55",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-object-dob",children:"DOB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"open-source",children:"Open Source"}),"\n",(0,i.jsx)(n.p,{children:"A piece of software where source code is freely available for examination or alteration by any third-party."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-56",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://opensource.com/resources/what-open-source",children:"What is Open Source at OpenSource.com"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"p2p",children:"P2P"}),"\n",(0,i.jsx)(n.p,{children:"A shortname name for peer to peer."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-19",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#peer-to-peer",children:"Peer to Peer"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"paper-wallet",children:"Paper Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A form of storing a recovery phrase or private keys offline by printing them on a piece of paper. This document would then be stored by traditional means in a secured location of the user's choosing, such as a safe."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-57",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"payment-address",children:"Payment Address"}),"\n",(0,i.jsx)(n.p,{children:"A string of letters and numbers that cryptocurrency and assets can be sent to and from."}),"\n",(0,i.jsx)(n.p,{children:'Nervos CKB Mainnet addresses always begin with the prefix "ckb".'}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-20",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#address",children:"Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"payment-channel",children:"Payment Channel"}),"\n",(0,i.jsx)(n.p,{children:"A micropayment channel or payment channel is class of techniques designed to allow users to make multiple payment transactions without committing all of the transactions to the layer 1 blockchain. In a typical payment channel, only two transactions are added to the block chain but an unlimited or nearly unlimited number of payments can be made between the participants."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-58",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"peer-to-peer",children:"Peer to Peer"}),"\n",(0,i.jsx)(n.p,{children:"A peer-to-peer (P2P) service is a decentralized platform whereby two individuals interact directly with each other, without intermediation by a third party."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-21",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#p2p",children:"P2P"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-59",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#node",children:"Node"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"private-key",children:"Private Key"}),"\n",(0,i.jsx)(n.p,{children:"A private key, also known as a secret key, is a variable in cryptography, known only to the owner(s) of the key, that is used with an algorithm to encrypt and decrypt data."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-60",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#paper-wallet",children:"Paper Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#payment-address",children:"Payment Address"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#wallet",children:"Wallet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proof-of-work",children:"Proof of Work"}),"\n",(0,i.jsx)(n.p,{children:"PoW asks users to solve a cryptographic puzzle to prove ownershipo of a certain amount of computational resource to participate in the consensus. In general PoW is a more permissionless consensus mechanism than PoS."}),"\n",(0,i.jsx)(n.p,{children:'In contrast to wildly spread misconception, PoW is not a "waste" of energy and does not induce more carbon emission. PoW is used in the Nervos layer 1 blockchain CKB.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-61",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-stake",children:"Proof of Stake"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proof-of-stake",children:"Proof of Stake"}),"\n",(0,i.jsx)(n.p,{children:"PoS asks users to prove ownership of a certain amount of cryptocurrency (their \u201cstake\u201d in the network) in order to be able to participate in the consensus. PoS relies on weak-subjectivity due to unsolvable issues like long-range attack. In PoS system the future consensus quorum is decided by existing participants completely. PoS is used in layer 2 protocols on Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-62",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consensus",children:"Consensus"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"propagation",children:"Propagation"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for Block Propagation."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-22",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-propagation",children:"Block Propagation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"public-key",children:"Public Key"}),"\n",(0,i.jsx)(n.p,{children:"A notion used only in public-key cryptography, a.k.a. asymmetric cryptography. A public key is a piece of information that can be known to others without compromising security. Unique for each user, a public key is associated with a private key known only to the user. The public key can be used to encrypt a message so that it can only be decrypted with the corresponding private key, or to verify that a message is authorized by the user with the corresponding private key."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-63",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"reward",children:"Reward"}),"\n",(0,i.jsx)(n.p,{children:"An amount of CKBytes included in each new block as a reward by the network to the miner who found the proof-of-work solution."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-64",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-reward",children:"Base Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-reward",children:"Block Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commit-reward",children:"Commit Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mining-reward",children:"Mining Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-reward",children:"Proposal Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"signature",children:"Signature"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for cryptographic signature."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-23",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptographic-signature",children:"Cryptographic Signature"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"smart-contract",children:"Smart Contract"}),"\n",(0,i.jsx)(n.p,{children:"A smart contract is a self-executing contract with the terms of the agreement between contract creators and contract users being directly written into lines of code. The code and the agreements contained therein exist across a distributed, decentralized blockchain network. Also known as script on Nervos CKB."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state",children:"State"}),"\n",(0,i.jsx)(n.p,{children:"Data stored on the blockchain. In most contexts this this means current data and excludes historical data."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-65",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state-bloat",children:"State Bloat"}),"\n",(0,i.jsx)(n.p,{children:"The unlimited increase of state data in Ethereum. State bloat slows down node synchronization, raises the barrier of full node, thus hurts network decentralization."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state-channel",children:"State Channel"}),"\n",(0,i.jsx)(n.p,{children:"A layer 2 solution where a channel is set up between participants, where they can transact freely and cheaply. Only a transaction to set up the channel and close the channel is sent to Mainnet. This allows for very high transaction throughput, but does rely on knowing number of participants up front and locking up of funds."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tip",children:"Tip"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for tip block."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-24",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tip-block",children:"Tip Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tip-block",children:"Tip Block"}),"\n",(0,i.jsx)(n.p,{children:"The most recent block to be confirmed in a blockchain. The tip block has the highest block height in the blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-25",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tip",children:"Tip"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-66",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-height",children:"Block Height"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction",children:"Transaction"}),"\n",(0,i.jsx)(n.p,{children:"Transaction is the basic object created and signed by users to interact with distributed ledger. Transactions update ledger state at users requests. A CKB transaction destroys some outputs created in previous transactions and creates some new outputs. We call the transaction output a Cell in CKB."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-67",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-fee",children:"Transaction Fee"}),"\n",(0,i.jsx)(n.p,{children:"A fee which is paid in the native token to miners in exchange for processing a transaction."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-26",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner-fee",children:"Miner Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-68",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#native-token",children:"Native Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"token",children:"Token"}),"\n",(0,i.jsx)(n.p,{children:"A \u201ctoken\u201d often refers to non-native token on smart contract platform, such as UDT on Nervos Network or ERC20 on Ethereum."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-69",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"turing-complete",children:"Turing Complete"}),"\n",(0,i.jsx)(n.p,{children:"Turing Complete refers to a machine that, given enough time and memory along with the necessary instructions, can solve any computational problem, no matter how complex. The term is normally used to describe modern programming languages as most of them are Turing Complete (C++, Python, JavaScript, etc.)."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"udt",children:"UDT"}),"\n",(0,i.jsx)(n.p,{children:"Short for User-Defined Token, a customised token created with properties defined by the user. In normal usage, this most commonly refers to fungible tokens."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-27",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"unconfirmed",children:"Unconfirmed"}),"\n",(0,i.jsx)(n.p,{children:"The state of a transaction that has not yet been confirmed. An unconfirmed transaction is not finalized and cannot be guaranteed."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-28",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#unconfirmed-transaction",children:"Unconfirmed Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-70",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"unconfirmed-transaction",children:"Unconfirmed Transaction"}),"\n",(0,i.jsx)(n.p,{children:"A transaction that has not yet been confirmed. An unconfirmed transaction is not finalized and cannot be guaranteed."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-29",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#unconfirmed",children:"Unconfirmed"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-71",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"user-defined-token",children:"User-Defined Token"}),"\n",(0,i.jsx)(n.p,{children:"A custom token created with properties defined by the user. In normal usage, this most commonly refers to fungible tokens."}),"\n",(0,i.jsx)(n.p,{children:"A User-Defined Token is usually referred to by its abbreviation, UDT."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-30",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-72",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-20",children:"ERC20 on Ethereum.org"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-777",children:"ERC777 on Ethereum.org"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://talk.nervos.org/t/rfc-simple-udt-draft-spec/4333",children:"Simple UDT Draft Spec on Nervos Talk"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"wallet",children:"Wallet"}),"\n",(0,i.jsx)(n.p,{children:"User-facing software used to interact with on-chain entities such as assets, smart contracts and dApps. A wallet can include key management itself or delegate key management to external hardware for improved security."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-73",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#paper-wallet",children:"Paper Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#private-key",children:"Private Key"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#payment-address",children:"Payment Address"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-asset",children:"Digital Asset"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"economics-glossary",children:"Economics Glossary"}),"\n",(0,i.jsx)(n.h3,{id:"base-issuance",children:"Base Issuance"}),"\n",(0,i.jsx)(n.p,{children:"Base issuance is the basic CKByte issuance with a fixed and decreasing schedule. Base issuance is awarded to miners as incentives to protect the network and also as an indirect token distribution method."}),"\n",(0,i.jsx)(n.p,{children:"Base issuance is limited to a finite total supply 33.6G (33.6 billion) CKBytes."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-74",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-reward",children:"Base Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"base-reward",children:"Base Reward"}),"\n",(0,i.jsx)(n.p,{children:"Base reward is the block reward (in CKBytes) to miners generated from the base issuance. Base reward halves approximately every 4 years until eventually reaching 0, like Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-75",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-issuance",children:"Base Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-reward-1",children:"Commit Reward"}),"\n",(0,i.jsx)(n.p,{children:"A reward paid to miners in CKBytes for committing a previously proposed transaction. After the transaction has been committed it is confirmed."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-76",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"economic-abstraction",children:"Economic Abstraction"}),"\n",(0,i.jsx)(n.p,{children:'With proper tool support, users can use tokens other than CKByte (for example, stable coins) to pay transactions fees, a concept known as "Economic Abstraction".'}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"fiat-currency",children:"Fiat Currency"}),"\n",(0,i.jsx)(n.p,{children:"Fiat currencies are a medium of exchange established as money, often by government regulation. Fiat money does not have intrinsic value and does not have use value. It has value only because a government maintains its value, or because parties engaging in exchange agree on its value."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-77",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptocurrency",children:"Cryptocurrency"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#digital-currency",children:"Digital Currency"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"heavy-asset-problem",children:"Heavy Asset Problem"}),"\n",(0,i.jsx)(n.p,{children:"A common problem found in multi-asset blockchain platforms where the value of the assets stored on the chain gains significant value but the native token of the chain does not. This raises the incentive to attack the network, but does not increase the security because the value of the native token is what is used to secure the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-78",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#asset",children:"Asset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#starving-layer-1-problem",children:"Starving Layer 1 Problem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"liquidity",children:"Liquidity"}),"\n",(0,i.jsx)(n.p,{children:"The ability for an asset to be bought or sold easily without causing a significant change in the current market price."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-79",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#asset",children:"Asset"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proposal-reward",children:"Proposal Reward"}),"\n",(0,i.jsx)(n.p,{children:"A reward paid to miners in CKBytes for proposing an unconfirmed transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-80",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secondary-issuance",children:"Secondary Issuance"}),"\n",(0,i.jsx)(n.p,{children:"The creation of new CKBytes that is paid to miners through secondary rewards. Secondary issuance follows a fixed inflation schedule of 1.344 billion CKBytes per year. Nervos DAO stakers are not affected by secondary issuance."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-81",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#base-issuance",children:"Base Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-dao",children:"Nervos DAO"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#state",children:"State"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secondary-reward",children:"Secondary Reward"}),"\n",(0,i.jsx)(n.p,{children:"A subsidy paid to miners in CKBytes for providing the compute and storage requirements required for processing transactions and persisting data on Nervos."}),"\n",(0,i.jsx)(n.p,{children:"Secondary rewards are created from secondary issuance, and continuously pay miners for the verification of transactions and preservation of blockchain state."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-82",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#miner",children:"Miner"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"selfish-mining-attack",children:"Selfish Mining Attack"}),"\n",(0,i.jsx)(n.p,{children:"Selfish mining is a concept that was addressed by Cornell University researchers in detail in a 2013 report. In this attack, malicious miners gain unfair block rewards by deliberately orphaning blocks mined by others."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-83",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.cs.cornell.edu/~ie53/publications/btcProcFC.pdf",children:"Selfish Mining Related Paper"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"starving-layer-1-problem",children:"Starving Layer 1 Problem"}),"\n",(0,i.jsx)(n.p,{children:"A scenario that can arise in multi-layer blockchain platforms where the vast majority of the transaction traffic moves from layer 1 to layer 2, taking the vast majority of transaction fees with it. If layer 1 relies exclusively on transaction fees to support the security of the platform, it may end up not having enough incentives available to properly secure it."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-84",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#heavy-asset-problem",children:"Heavy Asset Problem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-fee",children:"Transaction Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"state-rent",children:"State Rent"}),"\n",(0,i.jsx)(n.p,{children:"A recurring fee that is paid to persist and secure state data."}),"\n",(0,i.jsx)(n.p,{children:"On Nervos, secondary issuance is used to boost the payment of state rent by users who occupy space on the Nervos blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-85",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"store-of-assets",children:"Store of Assets"}),"\n",(0,i.jsx)(n.p,{children:'Similar to the concept of "Store of Value" in the context of Bitcoin, we call the utility "Store of Assets" when a blockchain keeps any crypto-assets securely and censorship-resistantly. Nervos CKB is such a Store of Assets or SoA.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-86",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#store-of-value",children:"Store of Value"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"store-of-value",children:"Store of Value"}),"\n",(0,i.jsx)(n.p,{children:"Assets which can maintain their worth over time without depreciating"}),"\n",(0,i.jsx)(n.p,{children:"A good store of value either match or outpace the inflation rate of fiat currency, and has a reasonable amount of liquidity, allowing the asset to be easily sold."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-87",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#store-of-assets",children:"Store of Assets"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#liquidity",children:"Liquidity"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tail-emission",children:"Tail Emission"}),"\n",(0,i.jsx)(n.p,{children:"A type of reward that is paid to miners through a fixed amount of inflation."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-88",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"targeted-inflation",children:"Targeted Inflation"}),"\n",(0,i.jsx)(n.p,{children:"A form of inflation that only affects a specific subset of users."}),"\n",(0,i.jsx)(n.p,{children:"Nervos uses Secondary Issuance to create targeted inflation on users who occupy space on the Nervos blockchain to pay State Rent. Long-term holders of CKBytes have the option of locking them in the Nervos DAO, which acts and an inflation shelter."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-89",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-dao",children:"Nervos DAO"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"Crypto-Economics RFC on Nervos Network GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tragedy-of-the-commons",children:"Tragedy of the Commons"}),"\n",(0,i.jsx)(n.p,{children:"A situation in a system where the participants act in accordance with their own self interest and deplete or destroy a shared resource through their collective action."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-90",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-storage-commons",children:"Tragedy of the Storage Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"}),"\n",(0,i.jsx)(n.p,{children:'A situation that can emerge on multi-asset blockchain platforms where asset tokens rely on the storage and security of the blockchain platform, but do not contribute back to the platform. As the number of assets that "ride for free" increases, so does the burden placed on the underlying blockchain platform. If the assets do not contribute to the underlying platform, the available security may not properly support the network.'}),"\n",(0,i.jsx)(n.h4,{id:"see-also-91",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#heavy-asset-problem",children:"Heavy Asset Problem"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-commons",children:"Tragedy of the Commons"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-storage-commons",children:"Tragedy of the Storage Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tragedy-of-the-storage-commons",children:"Tragedy of the Storage Commons"}),"\n",(0,i.jsx)(n.p,{children:"A situation that can emerge on incentivized blockchain platforms where mining rewards are paid for inclusion of data to the blockchain, but no rewards exist for the long-term persistence of the blockchain data. As the size of the chain grows, so do the costs associated with persisting the data. If there is no direct incentive for persisting data, fewer and fewer nodes will do so. Eventually, too few nodes will be available to properly support the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-92",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-commons",children:"Tragedy of the Commons"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#tragedy-of-the-security-commons",children:"Tragedy of the Security Commons"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"technical-glossary",children:"Technical Glossary"}),"\n",(0,i.jsx)(n.h3,{id:"active-cell",children:"Active Cell"}),"\n",(0,i.jsx)(n.p,{children:"Or Live Cell, a Cell exists in the current CKB state. Only active Cells can be used as inputs to new transactions."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-31",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-93",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#input",children:"Input"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"aggron",children:"Aggron"}),"\n",(0,i.jsx)(n.p,{children:"The first Nervos CKB Testnet corresponding to Mainnet Lina."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"CKB version"}),": >= v0.101.0 (latest stable is recommended)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Genesis hash"}),": 0x10639e0895502b5688a6be8cf69460d76541bfa4821629d86d62ba0aae3f9606"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Init command"}),": ",(0,i.jsx)(n.code,{children:"ckb init --chain testnet"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Launched at"}),": 2020-05-22 04:00:00 UTC"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"ckb2021 activated at"}),": 2021-10-24 03:00:00 UTC"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-32",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#testnet",children:"Testnet"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-3",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lina",children:"Lina"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"animagus",children:"Animagus"}),"\n",(0,i.jsx)(n.p,{children:"A framework layer that runs on top of Nervos CKB which provides an easy way to query for account balances without having to go through the Cell collection process."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-94",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-collection",children:"Cell Collection"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/https-medium-com-nervosnetwork-animagus-part-1-introduction-66fa8ce27ccd-cfb361a7d883",children:"Animagus Introduction on the Nervos Blog"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"args",children:"Args"}),"\n",(0,i.jsx)(n.p,{children:"Args is short for arguments. Arguments are data provided to the lock script or type script of a Cell, similar to args provided to a function or method call."}),"\n",(0,i.jsx)(n.p,{children:"Arguments are stored as part of the Cell when it is created."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-95",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"axon",children:"Axon"}),"\n",(0,i.jsx)(n.p,{children:"Axon is a chain-based layer 2 protocol and framework with a practical security and economic model. Axon chains allow anyone to stake tokens on CKB to become a validator and participate in consensus."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-96",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"blake2b",children:"Blake2b"}),"\n",(0,i.jsx)(n.p,{children:"A cryptographic hash function. BLAKE2b (or BLAKE2) is optimized for 64-bit platforms including NEON-enabled ARMs and produces digests of any size between 1 and 64 bytes. BLAKE2b is optimized for 8- to 32-bit platforms, and produces digests of any size between 1 and 32 bytes. CKB uses BLAKE2b as the default hash algorithm."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-97",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://blake2.net/blake2.pdf",children:"Blake2b paper"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/BLAKE_(hash_function)",children:"Blake Hash Function on Wikipedia"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Hash_function",children:"Hash Function on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block-subsidy",children:"Block Subsidy"}),"\n",(0,i.jsx)(n.p,{children:"A payment that is made in the native currency of the blockchain that is paid to miners for providing the computational resources create a block and secure the blockchain."}),"\n",(0,i.jsx)(n.p,{children:"The subsidy consists is the portion of the total block reward that is issued out of inflation for creating the block, but does not include any additional transaction fees that may be paid on top."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-33",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-reward",children:"Block Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-fee",children:"Transaction Fee"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"boxer",children:"Boxer"}),"\n",(0,i.jsx)(n.p,{children:"A lightweight Rust library for verifying the Nervos layer 1 blockchain, the Common Knowledge Base."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-98",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/xxuejie/ckb-boxer",children:"Boxer on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"block_version",children:(0,i.jsx)(n.code,{children:"block_version"})}),"\n",(0,i.jsx)(n.p,{children:"Version of a block. This field is reserved for the system, set to 0 by default."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub const BLOCK_VERSION: Version = 0;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-99",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell-collection",children:"Cell Collection"}),"\n",(0,i.jsx)(n.p,{children:"The process of gathering Cells that meet certain criteria."}),"\n",(0,i.jsx)(n.p,{children:"For example: To find the balance of a particular account, all active Cells for the address would need to be collected."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-100",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cellbase",children:"Cellbase"}),"\n",(0,i.jsx)(n.p,{children:"The transaction in each block that is responsible for the minting of new CKBytes."}),"\n",(0,i.jsx)(n.p,{children:"This is the equivalent of a coinbase transaction in Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-101",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"Coinbase on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cellbase_maturity",children:(0,i.jsx)(n.code,{children:"cellbase_maturity"})}),"\n",(0,i.jsx)(n.p,{children:'Any referenced cellbase output must meet this requirement in a transaction; otherwise, the transaction is rejected. Cellbase outputs are "locked" and have to wait for 4 epochs (approximately 16 hours) to be confirmed before they become ready to be spent. This restriction is to avoid the risk of later transactions with cellbase root being rollbacked when a soft fork occurs.'}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const CELLBASE_MATURITY: EpochNumberWithFraction =\nEpochNumberWithFraction::new_unchecked(4, 0, 1);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-102",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cellbase",children:"Cellbase"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"cell_deps",children:(0,i.jsx)(n.code,{children:"cell_deps"})}),"\n",(0,i.jsx)(n.p,{children:"Pointers to Live Cells on the chain that allow scripts in the transaction to access (read-only) referenced Live Cells."}),"\n",(0,i.jsxs)(n.p,{children:["Find more in the essay ",(0,i.jsx)(n.a,{href:"https://nervos-ckb-docs-git-v1-cryptape.vercel.app/docs/essays/dependencies/#how-dependencies-work",children:"Script dependencies"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-103",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckbhash",children:"Ckbhash"}),"\n",(0,i.jsx)(n.p,{children:"CKB uses blake2b as the default hash algorithm with the following configurations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["output digest size in bytes: ",(0,i.jsx)(n.code,{children:"32"})]}),"\n",(0,i.jsxs)(n.li,{children:["personalization: ",(0,i.jsx)(n.code,{children:"ckb-default-hash"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ckbhash"})," is used to denote the blake2b hash with the configurations above, there are example and test vectors in python 3:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"import hashlib\nimport unittest\n\ndef ckbhash():\n return hashlib.blake2b(digest_size=32, person=b'ckb-default-hash')\n\nclass TestCKBBlake2b(unittest.TestCase):\n\n def test_empty_message(self):\n hasher = ckbhash()\n hasher.update(b'')\n self.assertEqual('44f4c69744d5f8c55d642062949dcae49bc4e7ef43d388c5a12f42b5633d163e', hasher.hexdigest())\n\nif __name__ == '__main__':\n unittest.main()\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-104",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blake2b",children:"Blake2b"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"ckb-merkle-tree",children:"CKB Merkle Tree"}),"\n",(0,i.jsxs)(n.p,{children:["CKB Merkle Tree is a CBMT( ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0006-merkle-tree/0006-merkle-tree.md#complete-binary-merkle-tree",children:"Complete Binary Merkle Tree"})," ) using following merge function:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckbhash(left || right)\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ckbhash"})," is the hash function, ",(0,i.jsx)(n.code,{children:"||"})," denotes binary concatenation."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-105",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0006-merkle-tree/0006-merkle-tree.md",children:"Merkle Tree for Static Data"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Merkle_tree",children:"Merkle Tree on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"code-hash-1",children:"Code Hash"}),"\n",(0,i.jsx)(n.p,{children:"A field in a Cell that contains a hash value which could refer to a specific piece of data, or a specific Cell referenced by Type ID."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-106",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#data",children:"Data"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type_id",children:"Type ID"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commit-1",children:"Commit"}),"\n",(0,i.jsx)(n.p,{children:"The process of taking a proposed transaction and adding it to the blockchain. After the transaction has been committed it is confirmed."}),"\n",(0,i.jsx)(n.p,{children:"Miners are incentivized to commit transactions by being paid a commit reward."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-107",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commit-reward",children:"Commit Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#propose",children:"Propose"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"commitment-zone",children:"Commitment Zone"}),"\n",(0,i.jsx)(n.p,{children:"Section of the block that contains transaction commitments. The commitment zone can only contain valid transactions which have appeared in the proposal zone of one of the previous 2 to 10 blocks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-108",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-zone",children:"Proposal Zone"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"consume-1",children:"Consume"}),"\n",(0,i.jsx)(n.p,{children:"The process of using a Live Cell as an input to a transaction."}),"\n",(0,i.jsx)(n.p,{children:"The process of consumption marks the Live Cell as a Dead Cell. This is the equivalent of marking a UTXO as spent in Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-109",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"crypto-primitives",children:"Crypto Primitives"}),"\n",(0,i.jsx)(n.p,{children:"Well-established, low-level cryptographic algorithm commonly used to build out a cryptographic protocol."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-110",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cryptographic_primitive",children:"Cryptographic Primitive on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dao_type_hash",children:(0,i.jsx)(n.code,{children:"dao_type_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["NervosDAO\u2019s ",(0,i.jsx)(n.code,{children:"type_hash"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Find more in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#ckb-genesis-script-list",children:"CKB Genesis Script List"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-111",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script-hash",children:"Type Script Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"data-1",children:"Data"}),"\n",(0,i.jsx)(n.p,{children:"In Nervos specific contexts, data may refer to the data structure within a Cell. This structure is used to hold any form of information that needs to be stored on the Nervos blockchain."}),"\n",(0,i.jsx)(n.p,{children:"In more general contexts, data may refer to any form of information."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-112",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dead-cell",children:"Dead Cell"}),"\n",(0,i.jsx)(n.p,{children:"A Cell that has been used as an input to a previous transaction and is consumed."}),"\n",(0,i.jsx)(n.p,{children:"A Dead Cell cannot be used as an input to a new transaction, nor can it be used as a dependency. It is effectively destroyed and removed from the active state of the network."}),"\n",(0,i.jsx)(n.p,{children:'A Dead Cell is the equivalent of a "spent UTXO" in Bitcoin.'}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-34",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#historical-cell",children:"Historical Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-113",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consume",children:"Consume"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dep-group",children:"Dep Group"}),"\n",(0,i.jsx)(n.p,{children:"A method for referencing multiple dependencies which are commonly used together using a single dependency field."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-114",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dep-type",children:"Dep Type"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0022-transaction-structure/0022-transaction-structure.md",children:"CKB Transaction Structure on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dep-type",children:"Dep Type"}),"\n",(0,i.jsx)(n.p,{children:"A field that specifies the type of the dependency."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-115",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dep-group",children:"Dep Group"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0022-transaction-structure/0022-transaction-structure.md",children:"CKB Transaction Structure on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"deps",children:"Deps"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for dependencies."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-35",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dependencies",children:"Dependencies"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"dependencies",children:"Dependencies"}),"\n",(0,i.jsx)(n.p,{children:"Dependencies are commonly referred to as deps. Dependencies are Cells that are referenced in a transaction. Cells that are referenced as dependencies are read-only and made available to any scripts executing within the transaction. Dependencies, or deps, are not consumed."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-36",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#deps",children:"Deps"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-116",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consume",children:"Consume"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"duktape",children:"Duktape"}),"\n",(0,i.jsx)(n.p,{children:"Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint."}),"\n",(0,i.jsx)(n.p,{children:"Duktape is used to run JavaScript based smart contracts on Nervos."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-117",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://duktape.org/",children:"Duktape Official Website"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"difficulty",children:"Difficulty"}),"\n",(0,i.jsxs)(n.p,{children:["A measurement of how difficult it is to solve the ",(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})," cryptographic puzzle required to create a block."]}),"\n",(0,i.jsx)(n.p,{children:"Networks automatically adjust the difficulty to control the speed at which blocks are generated as mining participants enter and exit the network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-118",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-work",children:"Proof of Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"diviner",children:"Diviner"}),"\n",(0,i.jsx)(n.p,{children:"A deterministic testing framework for Rust."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-119",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/xxuejie/diviner",children:"Diviner on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"eaglesong",children:"Eaglesong"}),"\n",(0,i.jsx)(n.p,{children:"Eaglesong is a new hash function developed specifically for Nervos CKB proof-of-work, which is also suitable in other use cases in which a secure hash function is needed."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-120",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0010-eaglesong/0010-eaglesong.md",children:"Eaglesong RFC on the Nervos Github"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/the-proof-of-work-function-of-nervos-ckb-3cc8364464d9",children:"Introducing Eaglesong, Nervos\u2019s New Hash Function for CKB Proof-of-Work"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"epoch_duration_target",children:(0,i.jsx)(n.code,{children:"epoch_duration_target"})}),"\n",(0,i.jsx)(n.p,{children:"The estimated epoch duration specified by NC-Max. Set as 4 hours in CKB."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const DEFAULT_EPOCH_DURATION_TARGET: u64 = 4 * 60 * 60; // 4 hours, unit: second\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-121",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#epoch",children:"Epoch"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc20",children:"ERC20"}),"\n",(0,i.jsx)(n.p,{children:"An Ethereum token standard for basic fungible tokens."}),"\n",(0,i.jsx)(n.p,{children:"An sUDT on Nervos is the equivalent of Ethereum tokens standards ERC20 or ERC777."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-122",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#erc777",children:"ERC777"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-20",children:"ERC20 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc721",children:"ERC721"}),"\n",(0,i.jsx)(n.p,{children:"An Ethereum token standard for non-fungible tokens."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-123",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-721",children:"ERC721 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc777",children:"ERC777"}),"\n",(0,i.jsx)(n.p,{children:"An updated Ethereum token standard for basic fungible tokens that is backwards compatible with ERC20."}),"\n",(0,i.jsx)(n.p,{children:"An sUDT on Nervos is the equivalent of Ethereum tokens standards ERC20 or ERC777."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-124",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#erc20",children:"ERC20"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-777",children:"ERC777 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"erc1155",children:"ERC1155"}),"\n",(0,i.jsx)(n.p,{children:"An Ethereum token standard that supports the creation any number of fungible or non-fungible tokens on a single contract."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-125",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#fungible-token",children:"Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#non-fungible-token",children:"Non-Fungible Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-1155",children:"ERC1155 on Ethereum.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"full-address",children:"Full Address"}),"\n",(0,i.jsx)(n.p,{children:"An address format used on Nervos that includes the full code hash of the lock script associated."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-126",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#address",children:"Address"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#short-address",children:"Short Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"generator",children:"Generator"}),"\n",(0,i.jsx)(n.p,{children:"A program used to create transactions that can be broadcast to the Nervos CKB network."}),"\n",(0,i.jsx)(n.p,{children:"Generators run locally on the client side (off-chain). They utilize user input and existing Cells as program inputs, to create new Cells with new states as output."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"genesis-block",children:"Genesis Block"}),"\n",(0,i.jsx)(n.p,{children:"The first block in the blockchain, used to initialize the global state. The genesis block is unique because it does not contain a reference to the previous block because it is the first."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-127",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#blockchain",children:"Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"genesis_hash",children:(0,i.jsx)(n.code,{children:"genesis_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["Hash of CKB genesis block. CKB Genesis Block was created in a decentralized manner that encourages everyone to generate a unique genesis block verifiably through the ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/genesis-block-generator/blob/master/spec.md",children:"Genesis Block Generator"}),". Nodes thus created and activated can be connected to any other node across the network to form a decentralized Common Knowledge Base."]}),"\n",(0,i.jsx)(n.p,{children:"The genesis block contains two main components:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/ckb-system-scripts/blob/v0.5.4/c/dao.c",children:"System script"})}),"\n",(0,i.jsxs)(n.li,{children:["Token pre-allocation based on the Nervos Foundation\u2018s ",(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/nervos-ckb-official-public-sale-announcement-431438f4cc39#:~:text=Key%20details%20of%20the%20Nervos%20Public%20Sale&text=The%20initial%20total%20supply%20of,be%201%20CKB%20%3D%200.01%20USD.",children:"announcement"}),"."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-128",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#genesis-block",children:"Genesis block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"godwoken",children:"Godwoken"}),"\n",(0,i.jsx)(n.p,{children:"Godwoken is a layer 2 rollup framework for Nervos CKB. It provides scaling capability, as well as an abstract account model to CKB."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-129",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/godwoken",children:"Godwoken on GitHub"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://docs.godwoken.io/",children:"Godwoken Documentation Site"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"governance-script",children:"Governance Script"}),"\n",(0,i.jsx)(n.p,{children:"A type script which defines the monetary policy of a User Defined Token (UDT)."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-130",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#governance-script-hash",children:"Governance Script Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"governance-script-hash",children:"Governance Script Hash"}),"\n",(0,i.jsx)(n.p,{children:"A Blake2b hash of a type script which is used as an identifier for the script when referenced by a Cell."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-37",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script-hash",children:"Type Script Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-131",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#governance-script",children:"Governance Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"historical-cell",children:"Historical Cell"}),"\n",(0,i.jsxs)(n.p,{children:["An alternative term for ",(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-38",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-132",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"inbound-connection",children:"Inbound Connection"}),"\n",(0,i.jsx)(n.p,{children:"Inbound connection means it is initiated by the remote peer; and the connection itself is outgoing connection when we switch the subject to the remote peer."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-133",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#outbound-connection",children:"Outbound Connection"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"indexer",children:"Indexer"}),"\n",(0,i.jsx)(n.p,{children:"An application or library to trace Live Cells that comply with criteria specified by the developer or user."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-134",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"initial_primary_epoch_reward",children:(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})}),"\n",(0,i.jsx)(n.p,{children:"Incentives paid to miners in CKBytes by epoch in CKB base issuance. Under CKB's consensus, block interval is uncertain, while epoch can be fixed at approximately 4 hours, so reward issuance is determined by epoch. Each epoch issues 1_917_808_21917808 Shannons of CKBytes, whose total amount is fixed but halves every 4 years."}),"\n",(0,i.jsx)(n.p,{children:"The initial base issuance is 4.2 billion CKBytes per year. Similar to Bitcoin, the base issuance halves approximately every 4 years until it stops."}),"\n",(0,i.jsxs)(n.p,{children:["To calculate, ",(0,i.jsx)(n.a,{href:"/docs/concepts/glossary#block-reward",children:"block reward"})," = ",(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})," / epoch_length (the number of blocks in the epoch)."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const INITIAL_PRIMARY_EPOCH_REWARD: Capacity = Capacity::shannons(1_917_808_21917808);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-135",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-reward",children:"Block Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#epoch",children:"Epoch"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary_epoch_reward",children:(0,i.jsx)(n.code,{children:"secondary_epoch_reward"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"input",children:"Input"}),"\n",(0,i.jsx)(n.p,{children:"A Live Cell that is used in a transaction. If the transaction is accepted by the network, the Live Cell gets consumed as input and labeled as a Dead Cell."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-136",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#consume",children:"Consume"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#dead-cell",children:"Dead Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"keyper",children:"Keyper"}),"\n",(0,i.jsx)(n.p,{children:"A specification of how to manage wallet Lock Scripts which apply to a specific user."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-137",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ququzone/keyper",children:"Keyper on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"late-spawning",children:"Late Spawning"}),"\n",(0,i.jsx)(n.p,{children:"When a node joins a blockchain network for the first time after the network has already been in operation for a period of time."}),"\n",(0,i.jsx)(n.p,{children:"A network is said to support late spawning if that participant can download and verify the entire blockchain without having to trust any of the participants in the network to feed them unaltered data."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-138",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#genesis-block",children:"Genesis Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"layer-1",children:"Layer 1"}),"\n",(0,i.jsx)(n.p,{children:"Layer 1 of a decentralized ecosystem is the underlying blockchain architecture."}),"\n",(0,i.jsx)(n.p,{children:"A proof of work blockchain known as the Common Knowledge Base (CKB) that serves as the base layer for the Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-139",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"layer-2",children:"Layer 2"}),"\n",(0,i.jsx)(n.p,{children:"Layer 2 refers to a secondary framework or protocol that is built on top of an existing blockchain system."}),"\n",(0,i.jsx)(n.p,{children:"The main goal of these protocols is to solve the transaction speed and scaling difficulties that are being faced by the major cryptocurrency networks."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-140",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"lina",children:"Lina"}),"\n",(0,i.jsx)(n.p,{children:"The name of public Mainnet of the Nervos CKB."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"CKB version"}),": >= v0.25.2 (latest stable is recommended)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Genesis hash"}),": 0x92b197aa1fba0f63633922c61c92375c9c074a93e85963554f5499fe1450d0e5"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Init command"}),": ",(0,i.jsx)(n.code,{children:"ckb init --chain mainnet"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Launched at"}),": 2019-11-15 21:11:00 UTC"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-39",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-4",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#testnet",children:"Testnet"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-141",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"live-cell",children:"Live Cell"}),"\n",(0,i.jsx)(n.p,{children:"A Cell that has not been consumed and is available for use."}),"\n",(0,i.jsx)(n.p,{children:"This is similar to an unspent transaction output (UTXO) in Bitcoin."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-40",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#active-cell",children:"Active Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-142",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell-model",children:"Cell Model"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"UTXO on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"lock",children:"Lock"}),"\n",(0,i.jsx)(n.p,{children:"A script that represents the ownership of a Cell. A user successfully unlocks a Cell and is able to consume it if the Cell's lock script exits normally."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-143",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"lock-script",children:"Lock Script"}),"\n",(0,i.jsx)(n.p,{children:"A script that enforces access and ownership of a Cell. This script controls who has permission to use the Cell as an input. Lock scripts accept user generated proofs or witnesses and including transaction as inputs."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-144",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"lock-script-hash",children:"Lock Script Hash"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.a,{href:"#blake2b",children:"Blake2b"})," hash of a lock script which is used as an identifier for the script when referenced by a Cell."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-145",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"mainnet",children:"Mainnet"}),"\n",(0,i.jsxs)(n.p,{children:['Short for "main network", the running Nervos CKB public blockchain. The name of the Nervos CKB Mainnet is ',(0,i.jsx)(n.a,{href:"#lina",children:"Lina"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-41",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lina",children:"Lina"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-ckb",children:"Nervos CKB"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-5",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#testnet",children:"Testnet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_block_bytes",children:(0,i.jsx)(n.code,{children:"max_block_bytes"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum transaction size limit allowed in a block in bytes. Estimated based on the size consumed by 1000 2-in-2-out secp256k1 transactions."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub const MAX_BLOCK_BYTES: u64 = TWO_IN_TWO_OUT_BYTES * TWO_IN_TWO_OUT_COUNT;\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_block_cycles",children:(0,i.jsx)(n.code,{children:"max_block_cycles"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum transaction cycle limit allowed in a block. Estimated based on the cycles consumed by 1000 2-in-2-out secp256k1 transactions."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"/// cycles of a typical two-in-two-out tx.\npub const TWO_IN_TWO_OUT_CYCLES: Cycle = 3_500_000;\n\n/// count of two-in-two-out txs a block should capable to package.\nconst TWO_IN_TWO_OUT_COUNT: u64 = 1_000;\npub(crate) const MAX_BLOCK_CYCLES: u64 = TWO_IN_TWO_OUT_CYCLES * TWO_IN_TWO_OUT_COUNT;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-146",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cycles",children:"Cycles"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_block_proposals_limit",children:(0,i.jsx)(n.code,{children:"max_block_proposals_limit"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum amount of proposals contained in one block. The default value starts from 1.5."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"TWO_IN_TWO_OUT_COUNT\npub const MAX_BLOCK_PROPOSALS_LIMIT: u64 = 1_500;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-147",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-zone",children:"Proposal Zone"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"max_uncles_num",children:(0,i.jsx)(n.code,{children:"max_uncles_num"})}),"\n",(0,i.jsx)(n.p,{children:"The maximum number (Uint64) of uncle blocks allowed for one block. Set as 2 by default."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"const MAX_UNCLE_NUM: usize = 2;\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-148",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"median_time_block_count",children:(0,i.jsx)(n.code,{children:"median_time_block_count"})}),"\n",(0,i.jsx)(n.p,{children:"A timestamp is valid only when it is greater than the median timestamp of the previous 37 blocks."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"const MEDIAN_TIME_BLOCK_COUNT: usize = 37;\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"minting",children:"Minting"}),"\n",(0,i.jsx)(n.p,{children:"The process of creating of new tokens."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-149",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"molecule",children:"Molecule"}),"\n",(0,i.jsx)(n.p,{children:"A serialization framework for encoding data widely used on the Nervos Network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-150",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0008-serialization/0008-serialization.md",children:"Molecule Specification"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/molecule",children:"Molecule on Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"muta",children:"Muta"}),"\n",(0,i.jsx)(n.p,{children:"A highly customizable, high-performance blockchain framework designed to support proof of stake, BFT consensus and smart contracts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-151",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/muta",children:"Muta on GitHub"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proof-of-stake",children:"Proof of Stake"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"nervos-ckb",children:"Nervos CKB"}),"\n",(0,i.jsx)(n.p,{children:"The layer 1 blockchain of the Nervos Network, the Common Knowledge Base."}),"\n",(0,i.jsx)(n.p,{children:"Nervos CKB is often referred to as the Nervos Blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-42",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb",children:"CKB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-base",children:"Common Knowledge Base"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nervos-blockchain",children:"Nervos Blockchain"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-152",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"off-chain-computation",children:"Off-Chain Computation"}),"\n",(0,i.jsx)(n.p,{children:"A programming model where all computation is done off-chain to reduce the burden on the nodes in the network and provide higher levels of scalability. Nervos uses off-chain computation and on-chain verification."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-153",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-computation",children:"On-Chain Computation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-verification",children:"On-Chain Verification"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"off-chain-scaling",children:"Off-Chain Scaling"}),"\n",(0,i.jsx)(n.p,{children:"Off-chain scaling is the approach that only using the blockchain as a secure asset and settlement platform in conjunction with transferring almost all transactions off the blockchain."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-154",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-scaling",children:"On-Chain Scaling"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"off-chain-state",children:"Off-Chain State"}),"\n",(0,i.jsx)(n.p,{children:"The data of an application that is not stored on the blockchain, or is not accessible by on-chain smart contracts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-155",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-state",children:"On-Chain State"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-computation",children:"On-Chain Computation"}),"\n",(0,i.jsx)(n.p,{children:"A programming model where all computation by smart contracts is done on-chain by every node on the network simultaneously."}),"\n",(0,i.jsx)(n.p,{children:"Ethereum uses on-chain computation."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-156",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#off-chain-computation",children:"Off-Chain Computation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-scaling",children:"On-Chain Scaling"}),"\n",(0,i.jsx)(n.p,{children:"On-chain scaling solution refer to extending the throughput of the consensus process, or increasing network throughput as node number increases."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-157",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#off-chain-scaling",children:"Off-chain Scaling"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-state",children:"On-Chain State"}),"\n",(0,i.jsx)(n.p,{children:"The data of an application that is stored on the blockchain and is accessible by on-chain smart contracts."}),"\n",(0,i.jsx)(n.p,{children:"Nervos provides on-chain state for all smart contracts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-158",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#off-chain-state",children:"Off-Chain State"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"on-chain-verification",children:"On-Chain Verification"}),"\n",(0,i.jsx)(n.p,{children:"A programming model where all computation is done off-chain to reduce the burden on the nodes in the network, but verification of the resulting data is done on-chain to enforce the smart contract rules created by the developer."}),"\n",(0,i.jsx)(n.p,{children:"Nervos uses off-chain computation and on-chain verification."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-159",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#on-chain-computation",children:"On-Chain Computation"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"open-transaction",children:"Open Transaction"}),"\n",(0,i.jsx)(n.p,{children:"A signed piece of a transaction that is incomplete and invalid on its own. When combined with other signed transaction pieces can form a complete transaction which can be processed."}),"\n",(0,i.jsx)(n.p,{children:"One use of open transactions is to create the functionality required for a trustless decentalized exchange."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-160",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cryptographic-signature",children:"Cryptographic Signature"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"optimistic-rollup",children:"Optimistic Rollup"}),"\n",(0,i.jsx)(n.p,{children:"A rollup of transactions that use fraud proofs to offer increased layer 2 transaction throughput while using the security and data availability provided by layer 1."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-161",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-1",children:"Layer 1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#layer-2",children:"Layer 2"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan",children:"Orphan"}),"\n",(0,i.jsx)(n.p,{children:"A shorthand name for Orphan Block."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-43",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan-block",children:"Orphan Block"}),"\n",(0,i.jsx)(n.p,{children:"An orphan block is a valid block that is not included in the main fork due to, for example, a lag within the network itself. There can be two miners who solve a block simultaneously in NC-Max. They are non-main-chain blocks, also known as stale blocks."}),"\n",(0,i.jsx)(n.p,{children:"In Nervos, orphan blocks are better described as Uncles."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-44",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan",children:"Orphan"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-162",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block",children:"Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan-rate",children:"Orphan Rate"}),"\n",(0,i.jsx)(n.p,{children:"A measure of the speed at which Orphan blocks occur within the blockchain network."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-163",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan_rate_target",children:(0,i.jsx)(n.code,{children:"orphan_rate_target"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan_rate_target",children:(0,i.jsx)(n.code,{children:"orphan_rate_target"})}),"\n",(0,i.jsx)(n.p,{children:"The estimated orphan block rate specified in NC-max. Set as 2.5% in CKB."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"// o_ideal = 1/40 = 2.5%\npub(crate) const DEFAULT_ORPHAN_RATE_TARGET: (u32, u32) = (1, 40);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-164",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"orphan-transactions",children:"Orphan Transactions"}),"\n",(0,i.jsx)(n.p,{children:"Orphan transactions are those whose parental transactions are missing at the time that they are processed. These transactions are not propagated to other nodes until all of their missing parents are received, and they thus end up languishing in a local buffer until evicted or their parents are found."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-165",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"outbound-connection",children:"Outbound Connection"}),"\n",(0,i.jsx)(n.p,{children:'Also knowns as "outgoing connection".'}),"\n",(0,i.jsx)(n.p,{children:"A TCP connection is outgoing for the node if it was initiated (sent the TCP SYN packet) by the node in the context."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-166",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#inbound-connection",children:"Inbound Connection"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"outpoint",children:"Outpoint"}),"\n",(0,i.jsx)(n.p,{children:"A particular output Cell in a transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-167",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#output",children:"Output"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"output",children:"Output"}),"\n",(0,i.jsx)(n.p,{children:"A Live Cell that is created in a transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-168",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#live-cell",children:"Live Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"overlord",children:"Overlord"}),"\n",(0,i.jsx)(n.p,{children:"A byzantine fault tollerant consensus algorithm designed by Nervos for Huobi which can support thousands of transactions per second."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-169",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/nervosnetwork/overlord-a-new-consensus-algorithm-3cc51690d269",children:"Overlord on Medium"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"p2wsh",children:"P2WSH"}),"\n",(0,i.jsxs)(n.p,{children:["A Pay-to-Witness-Script-Hash (P2WSH) is a type of Bitcoin transaction similar to a ",(0,i.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/Pay_to_script_hash",children:"P2SH"})," transaction in most ways, except that it uses ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/SegWit",children:"SegWit"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"permanent_difficulty_in_dummy",children:(0,i.jsx)(n.code,{children:"permanent_difficulty_in_dummy"})}),"\n",(0,i.jsxs)(n.p,{children:["Keeps the difficulty permanent if PoW is dummy when dev-chain disables NC-MAX difficulty adjustment. As ",(0,i.jsx)(n.code,{children:"boolean"}),", it can be enabled through configuration."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-170",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#difficulty",children:"Difficulty"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"polyjuice",children:"Polyjuice"}),"\n",(0,i.jsx)(n.p,{children:"Polyjuice provides an Ethereum compatible runtime on Godwoken."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-171",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#godwoken",children:"Godwoken"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/polyjuice",children:"Polyjuice on GitHub"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"primary_epoch_reward_halving_interval",children:(0,i.jsx)(n.code,{children:"primary_epoch_reward_halving_interval"})}),"\n",(0,i.jsx)(n.p,{children:"The halving cycle of epoch reward in CKB base issuance, typically every four years. The mining reward halves when the halving interval occurs."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const DEFAULT_PRIMARY_EPOCH_REWARD_HALVING_INTERVAL: EpochNumber =\n4 * 365 * 24 * 60 * 60 / DEFAULT_EPOCH_DURATION_TARGET; // every 4 years\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-172",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#initial_primary_epoch_reward",children:(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proposal-zone",children:"Proposal Zone"}),"\n",(0,i.jsx)(n.p,{children:"Section of the block that contains transaction proposals."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-173",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commitment-zone",children:"Commitment Zone"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#propose",children:"Propose"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"propose",children:"Propose"}),"\n",(0,i.jsx)(n.p,{children:"The process of taking an unconfirmed transaction out of the mempool and proposing it for commitment. A transaction is not confirmed until after it has been committed."}),"\n",(0,i.jsx)(n.p,{children:"Miners are incentivized to propose transactions by being paid a proposal reward."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-174",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#commit",children:"Commit"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mempool",children:"Mempool"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-reward",children:"Proposal Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-zone",children:"Proposal Zone"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"proposer_reward_ratio",children:(0,i.jsx)(n.code,{children:"proposer_reward_ratio"})}),"\n",(0,i.jsx)(n.p,{children:"The reward ratio from transaction fees for miners who submit proposals specified by NC-Max. It is set as 40% in CKB, meaning the miner who first submits the transaction proposal will be rewarded with 40% of the transaction fee."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"const PROPOSER_REWARD_RATIO: Ratio = Ratio::new(4, 10);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-175",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#proposal-reward",children:"Proposal Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"risc-v",children:"RISC-V"}),"\n",(0,i.jsx)(n.p,{children:"An open standard instruction set architecture (ISA) for general computing."}),"\n",(0,i.jsx)(n.p,{children:"RISC-V is the instruction set used by the CKB-VM."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-176",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb-vm",children:"CKB-VM"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/RISC-V",children:"RISC-V on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"schnorr-signature",children:"Schnorr Signature"}),"\n",(0,i.jsx)(n.p,{children:"A cryptographic signature scheme for signing and verification."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-177",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Schnorr_signature",children:"Schnorr Signature on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"script",children:"Script"}),"\n",(0,i.jsx)(n.p,{children:"A script in Nervos CKB is a binary executable on the CKB-VM. Compared to Bitcoin script, CKB script is Turing-complete, equivalent to smart contract. A Script can be one of two types:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Lock Script - Used to control ownership and access to a Cell."}),"\n",(0,i.jsx)(n.li,{children:"Type Script - Used to control how a Cell is used in a transaction."}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-178",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"CKB-VM"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#risc-v",children:"RISC-V"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Executable_and_Linkable_Format",children:"ELF on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secondary_epoch_reward",children:(0,i.jsx)(n.code,{children:"secondary_epoch_reward"})}),"\n",(0,i.jsxs)(n.p,{children:["The secondary reward per epoch. Issued according to CKB\u2019s tokenomics detailed in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.md",children:"RFC0015"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Secondary issuance is designed to collect state rent, and has an issuance amount that is constant over time. After base issuance stops, there will only be secondary issuance."}),"\n",(0,i.jsx)(n.p,{children:"Secondary issuance has two parts. One is a fixed amount of base incentive (approximately 134.4 million CKBytes per year), while the other varies according to the number of CKBytes currently occupied."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const DEFAULT_SECONDARY_EPOCH_REWARD: Capacity = Capacity::shannons(613_698_63013698);\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-179",children:"See also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#initial_primary_epoch_reward",children:(0,i.jsx)(n.code,{children:"initial_primary_epoch_reward"})})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-reward",children:"Secondary Reward"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#secondary-issuance",children:"Secondary Issuance"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secp256k1_blake160_sighash_all_type_hash",children:(0,i.jsx)(n.code,{children:"secp256k1_blake160_sighash_all_type_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["Type hash of ",(0,i.jsx)(n.code,{children:"secp256k1_blake160_sighash_all"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#ckb-genesis-script-list",children:"CKB genesis scripts"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Find more details ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#secp256k1blake160",children:"here"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"secp256k1_blake160_multisig_all_type_hash",children:(0,i.jsx)(n.code,{children:"secp256k1_blake160_multisig_all_type_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["Type hash of ",(0,i.jsx)(n.code,{children:"secp256k1_blake160_multisig_all"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#ckb-genesis-script-list",children:"CKB genesis scripts"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Find more details ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#secp256k1multisig",children:"here"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"seed-cell",children:"Seed Cell"}),"\n",(0,i.jsx)(n.p,{children:"A design pattern on Nervos from creating unique identifiers used to create unforgeable assets."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-180",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"shannon",children:"Shannon"}),"\n",(0,i.jsx)(n.p,{children:"A fractional denomination of CKBytes. One CKByte is equal to 100,000,000 Shannons."}),"\n",(0,i.jsx)(n.p,{children:"A Shannon is the equivalent of a Bitcoin Satoshi."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-181",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbyte",children:"CKByte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#common-knowledge-byte",children:"Common Knowledge Byte"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://developer.bitcoin.org/glossary.html",children:"Satoshi (denomination) on Bitcoin.org"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"short-address",children:"Short Address"}),"\n",(0,i.jsx)(n.p,{children:"An address format on Nervos that does not include a code hash of the associated lock script, instead using one of the many common lock scripts."}),"\n",(0,i.jsx)(n.p,{children:'The short address format is the most common address format used, and is often referred to as simply "address".'}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-45",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#address",children:"Address"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-182",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#code-hash",children:"Code Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#full-address",children:"Full Address"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"simple-udt",children:"Simple UDT"}),"\n",(0,i.jsx)(n.p,{children:"A standard that defines a the most basic implementation of a UDT fungible token on Nervos."}),"\n",(0,i.jsx)(n.p,{children:"An sUDT on Nervos is the equivalent of Ethereum tokens standards ERC20 or ERC777."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-46",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#sudt",children:"SUDT"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-183",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#token",children:"Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://eips.ethereum.org/EIPS/eip-20",children:"ERC20 on Ethereum.org"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0025-simple-udt/0025-simple-udt.md",children:"Simple UDT RFC on Nervos Nerwork Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"since",children:"Since"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"since"})," is the u64 (unsigned 64-bit integer) field in transaction input for preventing inclusion before a certain block timestamp or a block number."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-184",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"spv",children:"SPV"}),"\n",(0,i.jsx)(n.p,{children:"An abbreviation for Simplified Payment Verification. A protocol for using a blockchain cryptocurrency without having to operate a full node."}),"\n",(0,i.jsx)(n.p,{children:"SPV clients require far less data to be stored, but also must requires the trust of the network clients it is connected to directly."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-185",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spv-wallet",children:"SPV Wallet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.bitcoinwiki.org/wiki/Simplified_Payment_Verification",children:"Simplified Payment Verification on BitcoinWiki"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"spv-wallet",children:"SPV Wallet"}),"\n",(0,i.jsx)(n.p,{children:"A light-weight cryptocurrency wallet that uses the SPV protocol."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-186",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#spv",children:"SPV"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"sudt",children:"SUDT"}),"\n",(0,i.jsx)(n.p,{children:"An abbreviation for Simple UDT."}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-47",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#simple-udt",children:"Simple UDT"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"testnet",children:"Testnet"}),"\n",(0,i.jsxs)(n.p,{children:["Short for \u201ctest network,\u201d a network used to simulate the behavior of the ",(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"}),". The name of the Nervos CKB Testnet is ",(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-48",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#aggron",children:"Aggron"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"not-to-be-confused-with-6",children:"Not To Be Confused With"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lina",children:"Lina"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#mainnet",children:"Mainnet"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-confirmation-number",children:"Transaction Confirmation Number"}),"\n",(0,i.jsx)(n.p,{children:"The number of confirmations required for a transaction to be added to a block."}),"\n",(0,i.jsxs)(n.p,{children:["As permissionless blockchain designs offer only probabilistic finality, a transaction can never be fully confirmed, facing an adversary with infinite computational power. Therefore, users and apps can choose a number they deem secure. We briefly discuss one factor here that influences the level of security: the recent orphan rate. It takes 6 confirmations to fully settle a transaction when the orphan rate is 0, and 24 confirmations when the rate reaches 2.5% to achieve the same level of security (See the rationale and calculation ",(0,i.jsx)(n.a,{href:"https://nervos-ckb-docs-git-v1-cryptape.vercel.app/docs/essays/tx-confirmation/",children:"here"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["In blockchain settlement assurance, transaction confirmation is one of the variables that cannot be easily quantified (See Nic Carter\u2019s ",(0,i.jsx)(n.a,{href:"https://medium.com/@nic__carter/its-the-settlement-assurances-stupid-5dcd1c3f4e41",children:"article"}),"). The exact number is open to adjustment depending on the security level that users desire. Nervos CKB sets a minimum of 15 confirmations, which should be considered conservative."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-187",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#confirmation",children:"Confirmation"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#nc-max",children:"NC-Max"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-hash",children:"Transaction Hash"}),"\n",(0,i.jsx)(n.p,{children:"Transaction hash, or Txhash, is the unique identifier of a transaction in a blockchain that acts as a record or proof that the transaction has taken place. To get a transaction hash in CKB, the transaction is serialized via Molecule, then the serialized raw is feed to ckbhash function. Its schema is:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"table Transaction {\n raw: RawTransaction,\n witnesses: BytesVec,\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Transaction hash is generated by the serialized ",(0,i.jsx)(n.code,{children:"raw"})," structure through ",(0,i.jsx)(n.a,{href:"#ckbhash",children:"ckbhash"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-188",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-witness-hash",children:"Transaction Witness Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#molecule",children:"Molecule"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0027-block-structure/0027-block-structure.md#transaction-hash",children:"Transaction Hash in RFC on Nervos Network Github"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-witness-hash",children:"Transaction Witness Hash"}),"\n",(0,i.jsxs)(n.p,{children:["Transaction witness hash is generated by the serialized transaction through ckbhash. Transaction is serialized via ",(0,i.jsx)(n.a,{href:"#molecule",children:"molecule"})," in CKB. Its schema is:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"table Transaction {\n raw: RawTransaction,\n witnesses: BytesVec,\n}\n"})}),"\n",(0,i.jsx)(n.h4,{id:"see-also-189",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-hash",children:"Transaction Hash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#molecule",children:"Molecule"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"transaction-root",children:"Transaction Root"}),"\n",(0,i.jsxs)(n.p,{children:["The field ",(0,i.jsx)(n.code,{children:"transactions_root"})," in header is"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ckbhash(T || W)\n"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ckbhash"})," is the hash function, ",(0,i.jsx)(n.code,{children:"||"})," denotes binary concatenation."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["T is the root of a ",(0,i.jsx)(n.a,{href:"#ckb-merkle-tree",children:"CKB Merkle Tree"}),", which items are the ",(0,i.jsx)(n.a,{href:"#transaction-hash",children:"transaction hashes"})," of all the transactions in the block."]}),"\n",(0,i.jsxs)(n.p,{children:["W is also the root of a ",(0,i.jsx)(n.a,{href:"#ckb-merkle-tree",children:"CKB Merkle Tree"}),", but the items are the ",(0,i.jsx)(n.a,{href:"#transaction-witness-hash",children:"Transaction Witness Hash"})," of all the transactions in the block."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-190",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckbhash",children:"Ckbhash"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb-merkle-tree",children:"CKB Merkle Tree"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction-witness-hash",children:"Transaction Witness Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tx_proposal_window",children:(0,i.jsx)(n.code,{children:"tx_proposal_window"})}),"\n",(0,i.jsx)(n.p,{children:"Interval for submitting proposals in the second stage specified by NC-Max. Set between 2 and 10 blocks in CKB."}),"\n",(0,i.jsx)("img",{src:(0,r.A)("img/tx-proposal-window.png")}),"\n",(0,i.jsx)(n.p,{children:"As shown above, when a transaction is first proposed in Block 13, it can be committed in the window between Block 15 and Block 23."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub(crate) const TX_PROPOSAL_WINDOW: ProposalWindow = ProposalWindow(2, 10);\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"tx_version",children:(0,i.jsx)(n.code,{children:"tx_version"})}),"\n",(0,i.jsx)(n.p,{children:"The version of a transaction. This field is set to 0 and is reserved for the system."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"pub const TX_VERSION: Version = 0;\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type_id",children:(0,i.jsx)(n.code,{children:"type_id"})}),"\n",(0,i.jsxs)(n.p,{children:["One of the CKB ",(0,i.jsx)(n.code,{children:"system_scripts"}),". A unique feature of Type ID is that it\u2018s a CKB built-in script directly implemented in Rust. It doesn't run in CKB-VM but can be used in the same way as other ",(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0024-ckb-genesis-script-list/0024-ckb-genesis-script-list.md#type-id",children:"CKB genesis scripts"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["For a deeper understanding of Type ID, check out this blog post: ",(0,i.jsx)(n.a,{href:"https://xuejie.space/2020_02_03_introduction_to_ckb_script_programming_type_id/",children:"Introduction to CKB Script Programming 6: Type ID"})," (also translated into ",(0,i.jsx)(n.a,{href:"https://talk.nervos.org/t/ckb-type-id/4258",children:"Chinese"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-191",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type_id_code_hash",children:(0,i.jsx)(n.code,{children:"type_id_code_hash"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"code_hash"})," of ",(0,i.jsx)(n.code,{children:"type_id"}),". In view of the specificity of ",(0,i.jsx)(n.code,{children:"type_id"}),", ",(0,i.jsx)(n.code,{children:"type_id_code_hash"})," is hard-coded, not the hash of the actual code."]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-192",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type_id",children:(0,i.jsx)(n.code,{children:"type_id"})})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type-script",children:"Type Script"}),"\n",(0,i.jsx)(n.p,{children:"A script that enforces the rules that must be followed in a transaction for a Cell to be consumed as an input or for a Cell to be created as an output."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-193",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script-hash",children:"Type Script Hash"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"type-script-hash",children:"Type Script Hash"}),"\n",(0,i.jsxs)(n.p,{children:["Or ",(0,i.jsx)(n.code,{children:"type_hash"}),", a Blake2b hash of a Type Script which is used as an identifier for the Script when referenced by a Cell."]}),"\n",(0,i.jsxs)(n.p,{children:["The two entities in the data structure of CKB\u2019s Cell are ",(0,i.jsx)(n.code,{children:"lock"})," and ",(0,i.jsx)(n.code,{children:"type"}),". Type scripts can capture any validation logic needed in the Offtransformation."]}),"\n",(0,i.jsx)(n.p,{children:"Type scripts can implement economic constructs as well. NervosDAO is completely implemented as a type script with minimal support from the consensus layer."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-194",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#cell",children:"Cell"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#script",children:"Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/nervosnetwork/ckb-system-scripts/blob/66d7da8ec72dffaa7e9c55904833951eca2422a9/c/dao.c",children:"NervosDAO"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"uncle",children:"Uncle"}),"\n",(0,i.jsx)(n.p,{children:"Or Uncle Block. Uncle blocks are created when two blocks are mined and submitted to the ledger at roughly the same time. Only one can enter the ledger as an included block, and the other does not."}),"\n",(0,i.jsx)(n.p,{children:"Uncles are paid a reduced block reward when they are found and reported."}),"\n",(0,i.jsx)(n.p,{children:"On Nervos, Uncles are tracked by consensus to adjust the block interval of the network."}),"\n",(0,i.jsx)(n.p,{children:"An uncle block has to meet the following conditions:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"An uncle should not be on the main chain; in other words, it should not be an uncle if it includes any block from the main chain."}),"\n",(0,i.jsx)(n.li,{children:"Uncle\u2019s block number must be smaller than the block\u2018s number that later includes it."}),"\n",(0,i.jsx)(n.li,{children:"Uncle\u2018s parent must be on the main chain, or uncle\u2019s parent must also be an uncle. In other words, uncle must be linkable to the main chain in any way. It can never be a random block that is not on the main chain."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"- if !snapshot.is_main_chain(&uncle.hash()) // It should not be on the main chain.\n- && !snapshot.is_uncle(&uncle.hash()) // It should not be an uncle twice. \n- && uncle.number() < candidate_number // The block number of the uncle should be smaller than that of any block on the main chain. \n- && (uncles.iter().any(|u| u.hash() == parent_hash) \n|| snapshot.is_main_chain(&parent_hash) // Uncle block should not be parentless. The parent of un uncle must be a block on the main chain or another uncle. \n|| snapshot.is_uncle(&parent_hash))\n"})}),"\n",(0,i.jsx)("img",{src:(0,r.A)("img/uncle_rule.png")}),"\n",(0,i.jsx)(n.p,{children:"As illustrated above, A is the main chain. B3 can be the uncle of A4 (to be included in A4), since B3 is linked to A2. However, B4 cannot be included in A4, since the uncle\u2019s block number must be smaller than A4, the current block on the main chain."}),"\n",(0,i.jsx)(n.p,{children:"Similarly, B4 can be the uncle of A5 (be included by A5). Although B4\u2018s parent, B3, is not on the main chain, B3 is the uncle of A4. For this reason, B4 is a legal uncle, and B3 cannot be included by A5."}),"\n",(0,i.jsx)(n.p,{children:"C2 and C3 cannot be linked to the main chain as their parent is unknown, therefore, they cannot be uncles."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-195",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#max_uncles_num",children:(0,i.jsx)(n.code,{children:"max_uncles_num"})})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"synonyms-49",children:"Synonyms"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-block",children:"Orphan Block"})}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"see-also-196",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#block-interval",children:"Block Interval"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"uncle-rate",children:"Uncle Rate"}),"\n",(0,i.jsx)(n.h4,{id:"see-also-197",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#orphan-rate",children:"Orphan Rate"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#uncle",children:"Uncle"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"validator",children:"Validator"}),"\n",(0,i.jsx)(n.p,{children:"A script that is used to ensure that the transactions created by the generators are valid. Validators are scripts that run in CKB-VM as either lock scripts or type scripts."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-198",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#ckb-vm",children:"CKB-VM"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#lock-script",children:"Lock Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#type-script",children:"Type Script"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"witness",children:"Witness"}),"\n",(0,i.jsx)(n.p,{children:"A set of cryptographic proof containing the data required to prove authorization of the resources used in the transaction."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-199",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"xudt",children:"XUDT"}),"\n",(0,i.jsx)(n.p,{children:"An extended UDT standard upon sUDT (Simple UDT) to accommodate additional functionalities, including regulatory compliance. Also written as Extensible UDT."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-200",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#user-defined-token",children:"User-Defined Token"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#simple-udt",children:"Simple UDT"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#udt",children:"UDT"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"zk-snark",children:"Zk-SNARK"}),"\n",(0,i.jsx)(n.p,{children:"A form of cryptographic proof, that when used in cryptocurrencies, allows for privacy features which do not reveal the amounts or participants in transactions."}),"\n",(0,i.jsx)(n.p,{children:"Zk-SNARKs require a trusted setup, but are otherwise trustless."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-201",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#zk-stark",children:"Zk-STARK"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof",children:"Non-interactive zero-knowledge proofs on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h3,{id:"zk-stark",children:"Zk-STARK"}),"\n",(0,i.jsx)(n.p,{children:"A form of cryptographic proof, that when used in cryptocurrencies, allows for privacy features which do not reveal the amounts or participants in transactions."}),"\n",(0,i.jsx)(n.p,{children:"Unlike Zk-SNARKs, Zk-STARKs do not require a trusted setup."}),"\n",(0,i.jsx)(n.h4,{id:"see-also-202",children:"See Also"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#transaction",children:"Transaction"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#zk-snark",children:"Zk-SNARK"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof",children:"Non-interactive zero-knowledge proofs on Wikipedia"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{})]})}function x(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var i=s(6540);const l={},r=i.createContext(l);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/631c4dd6.fb371316.js b/assets/js/631c4dd6.45a76bba.js
similarity index 97%
rename from assets/js/631c4dd6.fb371316.js
rename to assets/js/631c4dd6.45a76bba.js
index d784f33e0..888dc0883 100644
--- a/assets/js/631c4dd6.fb371316.js
+++ b/assets/js/631c4dd6.45a76bba.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkdocs_nervos_org=self.webpackChunkdocs_nervos_org||[]).push([[516],{5774:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>l,frontMatter:()=>n,metadata:()=>s,toc:()=>d});var i=r(4848),c=r(8453);const n={id:"intro-to-script",title:"Intro to Script",sidebar_position:1},o="Intro to Script",s={id:"Script/intro-to-script",title:"Intro to Script",description:"A Script in Nervos CKB is a binary executable that can be executed on-chain. It is Turing-complete and can perform arbitray logic to guard and protect your on-chain assets. You can think of it as smart contract.",source:"@site/docs/Script/intro-to-script.mdx",sourceDirName:"Script",slug:"/Script/intro-to-script",permalink:"/docs/Script/intro-to-script",draft:!1,unlisted:!1,editUrl:"https://github.com/nervosnetwork/docs-new/tree/develop/website/docs/Script/intro-to-script.mdx",tags:[],version:"current",lastUpdatedAt:1713234561,formattedLastUpdatedAt:"Apr 16, 2024",sidebarPosition:1,frontMatter:{id:"intro-to-script",title:"Intro to Script",sidebar_position:1},sidebar:"tutorial",previous:{title:"Scripts",permalink:"/docs/Script/"},next:{title:"Program Languages for Script",permalink:"/docs/Script/program-language-for-script"}},a={},d=[{value:"How a Script Work",id:"how-a-script-work",level:2},{value:"Script Types",id:"script-types",level:2},{value:"Script Structure",id:"script-structure",level:2}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,c.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"intro-to-script",children:"Intro to Script"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.a,{href:"/docs/concepts/glossary#script",children:"Script"})," in Nervos CKB is a binary executable that can be executed on-chain. It is Turing-complete and can perform arbitray logic to guard and protect your on-chain assets. You can think of it as smart contract."]}),"\n",(0,i.jsx)(t.h2,{id:"how-a-script-work",children:"How a Script Work"}),"\n",(0,i.jsxs)(t.p,{children:["When executing a Script, CKB takes the executables and runs them in a virtual machine environment called ",(0,i.jsx)(t.a,{href:"/docs/concepts/ckb-vm",children:"CKB-VM"}),". After the execution, if the program returns a code of 0, we consider the Script successful; any non-zero return codes will be considered Script failures."]}),"\n",(0,i.jsx)(t.p,{children:"When you submit a transaction to CKB, it executes all the Scripts from the transaction to ensure that each Script succeeds. If any Script fails, the transaction will not be included on-chain."}),"\n",(0,i.jsx)(t.p,{children:"In this way, we can allow the Cell to carry different Scripts to perform various validations for the current transaction, similar to how smart contracts work in other blockchains."}),"\n",(0,i.jsx)(t.h2,{id:"script-types",children:"Script Types"}),"\n",(0,i.jsx)(t.p,{children:"A Script can be one of two types:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Lock Script - Used to control ownership and access to a Cell."}),"\n",(0,i.jsx)(t.li,{children:"Type Script - Used to control how a Cell is used in a transaction."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"In most cases, Lock Script works the same with Type Script. The difference is that, only the Lock Script from the input Cells will be exeuted in the transaction, while the Type Script from both the input Cells and output Cells will be executed in the transaction."}),"\n",(0,i.jsx)(t.p,{children:"This difference has lead to the different usecases of Lock Script and Type Script as we have mentioned above. Lock Script is often used to control owener ship of a Cell while Type Script defines what kinds of changes of a Cell is valid for the transaction."}),"\n",(0,i.jsx)(t.h2,{id:"script-structure",children:"Script Structure"}),"\n",(0,i.jsx)(t.p,{children:"Script has the following structure:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"pub struct Script {\n pub code_hash: H256,\n pub hash_type: ScriptHashType,\n pub args: JsonBytes,\n}\n"})}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.code,{children:"code_hash"})," serves to identify a Script code, allowing the ",(0,i.jsx)(t.code,{children:"CKB-VM"})," to load the binary code of the Script correctly."]}),"\n",(0,i.jsxs)(t.p,{children:["A Script also includes the ",(0,i.jsx)(t.code,{children:"args"})," part, which differentiates one Script from another using the same Script code. The ",(0,i.jsx)(t.code,{children:"args"})," can provide additional arguments for a CKB Script; for example, while multiple users might utilize the same default Lock Script code, each user can have their own public key hash stored in ",(0,i.jsx)(t.code,{children:"args"}),". This setup allows each user to have a unique Lock Script while sharing the same Lock Script code."]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"hash_type"})," indicates the method CKB-VM uses to locate the Script code for a Script. Possible values include ",(0,i.jsx)(t.code,{children:"type"}),", ",(0,i.jsx)(t.code,{children:"data"}),", ",(0,i.jsx)(t.code,{children:"data1"}),", and ",(0,i.jsx)(t.code,{children:"data2"}),". Each specifies a different way of referencing the required Script code."]})]})}function l(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>s});var i=r(6540);const c={},n=i.createContext(c);function o(e){const t=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:o(e.components),i.createElement(n.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkdocs_nervos_org=self.webpackChunkdocs_nervos_org||[]).push([[516],{5774:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>l,frontMatter:()=>n,metadata:()=>s,toc:()=>d});var i=r(4848),c=r(8453);const n={id:"intro-to-script",title:"Intro to Script",sidebar_position:1},o="Intro to Script",s={id:"Script/intro-to-script",title:"Intro to Script",description:"A Script in Nervos CKB is a binary executable that can be executed on-chain. It is Turing-complete and can perform arbitray logic to guard and protect your on-chain assets. You can think of it as smart contract.",source:"@site/docs/Script/intro-to-script.mdx",sourceDirName:"Script",slug:"/Script/intro-to-script",permalink:"/docs/Script/intro-to-script",draft:!1,unlisted:!1,editUrl:"https://github.com/nervosnetwork/docs-new/tree/develop/website/docs/Script/intro-to-script.mdx",tags:[],version:"current",lastUpdatedAt:1713875854,formattedLastUpdatedAt:"Apr 23, 2024",sidebarPosition:1,frontMatter:{id:"intro-to-script",title:"Intro to Script",sidebar_position:1},sidebar:"tutorial",previous:{title:"Scripts",permalink:"/docs/Script/"},next:{title:"Program Languages for Script",permalink:"/docs/Script/program-language-for-script"}},a={},d=[{value:"How a Script Work",id:"how-a-script-work",level:2},{value:"Script Types",id:"script-types",level:2},{value:"Script Structure",id:"script-structure",level:2}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,c.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"intro-to-script",children:"Intro to Script"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.a,{href:"/docs/concepts/glossary#script",children:"Script"})," in Nervos CKB is a binary executable that can be executed on-chain. It is Turing-complete and can perform arbitray logic to guard and protect your on-chain assets. You can think of it as smart contract."]}),"\n",(0,i.jsx)(t.h2,{id:"how-a-script-work",children:"How a Script Work"}),"\n",(0,i.jsxs)(t.p,{children:["When executing a Script, CKB takes the executables and runs them in a virtual machine environment called ",(0,i.jsx)(t.a,{href:"/docs/concepts/ckb-vm",children:"CKB-VM"}),". After the execution, if the program returns a code of 0, we consider the Script successful; any non-zero return codes will be considered Script failures."]}),"\n",(0,i.jsx)(t.p,{children:"When you submit a transaction to CKB, it executes all the Scripts from the transaction to ensure that each Script succeeds. If any Script fails, the transaction will not be included on-chain."}),"\n",(0,i.jsx)(t.p,{children:"In this way, we can allow the Cell to carry different Scripts to perform various validations for the current transaction, similar to how smart contracts work in other blockchains."}),"\n",(0,i.jsx)(t.h2,{id:"script-types",children:"Script Types"}),"\n",(0,i.jsx)(t.p,{children:"A Script can be one of two types:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Lock Script - Used to control ownership and access to a Cell."}),"\n",(0,i.jsx)(t.li,{children:"Type Script - Used to control how a Cell is used in a transaction."}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"In most cases, Lock Script works the same with Type Script. The difference is that, only the Lock Script from the input Cells will be exeuted in the transaction, while the Type Script from both the input Cells and output Cells will be executed in the transaction."}),"\n",(0,i.jsx)(t.p,{children:"This difference has lead to the different usecases of Lock Script and Type Script as we have mentioned above. Lock Script is often used to control owener ship of a Cell while Type Script defines what kinds of changes of a Cell is valid for the transaction."}),"\n",(0,i.jsx)(t.h2,{id:"script-structure",children:"Script Structure"}),"\n",(0,i.jsx)(t.p,{children:"Script has the following structure:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:"pub struct Script {\n pub code_hash: H256,\n pub hash_type: ScriptHashType,\n pub args: JsonBytes,\n}\n"})}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.code,{children:"code_hash"})," serves to identify a Script code, allowing the ",(0,i.jsx)(t.code,{children:"CKB-VM"})," to load the binary code of the Script correctly."]}),"\n",(0,i.jsxs)(t.p,{children:["A Script also includes the ",(0,i.jsx)(t.code,{children:"args"})," part, which differentiates one Script from another using the same Script code. The ",(0,i.jsx)(t.code,{children:"args"})," can provide additional arguments for a CKB Script; for example, while multiple users might utilize the same default Lock Script code, each user can have their own public key hash stored in ",(0,i.jsx)(t.code,{children:"args"}),". This setup allows each user to have a unique Lock Script while sharing the same Lock Script code."]}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"hash_type"})," indicates the method CKB-VM uses to locate the Script code for a Script. Possible values include ",(0,i.jsx)(t.code,{children:"type"}),", ",(0,i.jsx)(t.code,{children:"data"}),", ",(0,i.jsx)(t.code,{children:"data1"}),", and ",(0,i.jsx)(t.code,{children:"data2"}),". Each specifies a different way of referencing the required Script code."]})]})}function l(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>s});var i=r(6540);const c={},n=i.createContext(c);function o(e){const t=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:o(e.components),i.createElement(n.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/65413b96.b07b637b.js b/assets/js/65413b96.b07b637b.js
new file mode 100644
index 000000000..6d3df8ba1
--- /dev/null
+++ b/assets/js/65413b96.b07b637b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs_nervos_org=self.webpackChunkdocs_nervos_org||[]).push([[267],{5466:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var r=t(4848),a=t(8453),i=(t(8180),t(9489)),o=t(7227);const s={id:"run-mainnet-node",title:"Run a Mainnet Node",sidebar_position:1},l="Run a Mainnet Node",u={id:"Node/run-mainnet-node",title:"Run a Mainnet Node",description:"Running a Mainnet node allows you to participate directly in the live blockchain, supporting the network's operation and integrity. This guide will cover the steps needed to set up and run a mainnet node on CKB, which is ideal for those looking to be actively involved in the network's governance and day-to-day activities. We suggest a minimum of 100GB of local storage for this purpose.",source:"@site/docs/Node/run-mainnet-node.mdx",sourceDirName:"Node",slug:"/Node/run-mainnet-node",permalink:"/docs/Node/run-mainnet-node",draft:!1,unlisted:!1,editUrl:"https://github.com/nervosnetwork/docs-new/tree/develop/website/docs/Node/run-mainnet-node.mdx",tags:[],version:"current",lastUpdatedAt:1713875854,formattedLastUpdatedAt:"Apr 23, 2024",sidebarPosition:1,frontMatter:{id:"run-mainnet-node",title:"Run a Mainnet Node",sidebar_position:1},sidebar:"tutorial",previous:{title:"Run Node",permalink:"/docs/Node/"},next:{title:"Run a Testnet Node",permalink:"/docs/Node/run-testnet-node"}},c={},d=[{value:"Step 1: Download CKB Binary",id:"step-1-download-ckb-binary",level:2},{value:"Step 2: Navigate to CKB Directory",id:"step-2-navigate-to-ckb-directory",level:2},{value:"Step 3: Verify versions",id:"step-3-verify-versions",level:2},{value:"Step 4: Initialize Node",id:"step-4-initialize-node",level:2},{value:"Step 5: Start the CKB Mainnet Node",id:"step-5-start-the-ckb-mainnet-node",level:2},{value:"Track Your Node",id:"track-your-node",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"run-a-mainnet-node",children:"Run a Mainnet Node"}),"\n",(0,r.jsx)(n.p,{children:"Running a Mainnet node allows you to participate directly in the live blockchain, supporting the network's operation and integrity. This guide will cover the steps needed to set up and run a mainnet node on CKB, which is ideal for those looking to be actively involved in the network's governance and day-to-day activities. We suggest a minimum of 100GB of local storage for this purpose."}),"\n",(0,r.jsx)(n.h2,{id:"step-1-download-ckb-binary",children:"Step 1: Download CKB Binary"}),"\n",(0,r.jsx)(n.admonition,{type:"info",children:(0,r.jsxs)(n.p,{children:["We will use ",(0,r.jsx)(n.strong,{children:"ckb_v0.115.0"})," for this guide. Please ensure you download the latest version corresponding to your operating system."]})}),"\n",(0,r.jsxs)(n.p,{children:["Get the latest CKB binary from ",(0,r.jsx)(n.a,{href:"https://github.com/nervosnetwork/ckb/releases",children:"Github releases"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"step-2-navigate-to-ckb-directory",children:"Step 2: Navigate to CKB Directory"}),"\n",(0,r.jsx)(n.p,{children:"Unzip the downloaded file to an easily accessible folder, e.g., C:\\ckb for Windows, ~/Documents for Mac. Open your terminal/command line and navigate to your CKB directory using the following command:"}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)(o.A,{value:"mac",label:"Mac",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" cd /Users/(NAME)/Documents/ckb_v0.115.0-rc3_aarch64-apple-darwin-portable/ckb\n"})})}),(0,r.jsx)(o.A,{value:"windows",label:"Windows",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" cd C:/ckb_v0.115.0_x86_64-pc-windows-msvc\n"})})})]}),"\n",(0,r.jsx)(n.h2,{id:"step-3-verify-versions",children:"Step 3: Verify versions"}),"\n",(0,r.jsxs)(i.A,{children:[(0,r.jsx)(o.A,{value:"check-version",label:"Command",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" ckb --version\n ckb-cli --version\n"})})}),(0,r.jsx)(o.A,{value:"verify-version",label:"Result",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" ckb 0.115.0 (d845cbf 2024-04-01)\n ckb-cli 1.8.0-rc1 (cf4159b 2024-03-28)\n"})})})]}),"\n",(0,r.jsx)(n.h2,{id:"step-4-initialize-node",children:"Step 4: Initialize Node"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" ckb init --chain mainnet\n"})}),"\n",(0,r.jsx)(n.h2,{id:"step-5-start-the-ckb-mainnet-node",children:"Step 5: Start the CKB Mainnet Node"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:" ckb run\n"})}),"\n",(0,r.jsx)(n.p,{children:"By following these steps, you've successfully started a CKB node connected to the mainnet. This node will participate in the network, contributing to its security and robustness."}),"\n",(0,r.jsx)(n.h2,{id:"track-your-node",children:"Track Your Node"}),"\n",(0,r.jsxs)(n.p,{children:["Track your node using ",(0,r.jsx)(n.a,{href:"https://nodes.ckb.dev/",children:"CKB Node Probe"})," and view the global distribution of active CKB nodes."]})]})}function p(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},7227:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var r=t(8215);const a={tabItem:"tabItem_Ymn6"};var i=t(4848);function o(e){var n=e.children,t=e.hidden,o=e.className;return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.A)(a.tabItem,o),hidden:t,children:n})}},9489:(e,n,t)=>{t.d(n,{A:()=>j});var r=t(6540),a=t(8215),i=t(4245),o=t(6347),s=t(6494),l=t(2814),u=t(5167),c=t(1269);function d(e){var n,t;return null!=(n=null==(t=r.Children.toArray(e).filter((function(e){return"\n"!==e})).map((function(e){if(!e||(0,r.isValidElement)(e)&&((n=e.props)&&"object"==typeof n&&"value"in n))return e;var n;throw new Error("Docusaurus error: Bad hello.js
into binary with CKB-Debugger",id:"compile-the-hellojs-into-binary-with-ckb-debugger",level:4},{value:"Write tests for the hello.js
Script",id:"write-tests-for-the-hellojs-script",level:4},{value:"Run the Test to See If It Passes",id:"run-the-test-to-see-if-it-passes",level:4},{value:"Write a fib.js
Script",id:"write-a-fibjs-script",level:4},{value:"Compile the fib.js
into Binary with CKB-Debugger",id:"compile-the-fibjs-into-binary-with-ckb-debugger",level:4},{value:"Add a New Test for The fib.js
Script",id:"add-a-new-test-for-the-fibjs-script",level:4},{value:"Run the test for fib.js
smart contract",id:"run-the-test-for-fibjs-smart-contract",level:4},{value:"Integrate via Spawn Syscall",id:"integrate-via-spawn-syscall",level:3},{value:"Write run-js
Script",id:"write-run-js-script",level:4},{value:"Write Test for Run-JS Script",id:"write-test-for-run-js-script",level:4},{value:"Run test for sudt.js
",id:"run-test-for-sudtjs",level:4},{value:"Congratulations!",id:"congratulations",level:2},{value:"Additional Resources",id:"additional-resources",level:2}];function _(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"tutorial-run-javascript-code-on-ckb",children:"Tutorial: Run JavaScript Code on CKB"}),"\n",(0,s.jsx)(a.A,{time:i.A.basic.time,topics:i.A.basic.topics,tools:i.A.basic.tools}),"\n",(0,s.jsx)(t.h2,{id:"the-high-level-idea",children:"The High-Level Idea"}),"\n",(0,s.jsxs)(t.p,{children:["As we have learned before, you can use any programming language to write a Script (Smart contract) for CKB.\nBut does it really work in reality? This tutorial will show a full example of using JavaScript to\nwrite Scripts and execute them in the ",(0,s.jsx)(t.a,{href:"/docs/concepts/ckb-vm",children:"CKB-VM"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"The process is as follows: first we port a JavaScript engine as a base Script to CKB. Then, we write\nthe business logic in JavaScript and execute this JS-powered Script within the base Script on top of CKB-VM."}),"\n",(0,s.jsxs)(t.p,{children:["It sounds like a of work. But thanks to the CKB VM team, we already have a fully runnable JavaScript\nengine called ",(0,s.jsx)(t.a,{href:"https://github.com/nervosnetwork/ckb-js-vm",children:"ckb-js-vm"}),". It is ported from\n",(0,s.jsx)(t.a,{href:"https://quick.js.org",children:"quick.js"})," so that it is compatible with running on CKB-VM. We just need to take\nthe ckb-js-vm and deploy it on-chain before we can run our JS Script."]}),"\n",(0,s.jsxs)(t.p,{children:["Below is a step-by-step guide, and you can also clone the full code example from the ",(0,s.jsx)(t.a,{href:"https://github.com/nervosnetwork/docs.nervos.org/tree/develop/examples/js-script",children:"Github repo"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"get-ckb-js-vm-binary",children:"Get ckb-js-vm Binary"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," is a binary that can be used both in the CLI and in the on-chain CKB-VM. Let's first build the\nbinary and give it a try to see if it works as expected."]}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["You will need ",(0,s.jsx)(t.code,{children:"clang 16+"})," to build the ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," binary:"]})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"git clone https://github.com/nervosnetwork/ckb-js-vm\ncd ckb-js-vm\ngit submodule update --init\nmake all\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Now, the binary is in the ",(0,s.jsx)(t.code,{children:"build/"})," folder. Without writing any codes, we can use the\n",(0,s.jsx)(t.a,{href:"https://github.com/nervosnetwork/ckb-standalone-debugger",children:"CKB-Debugger"}),"(another CLI tool that\nenables off-chain Script development, as the name suggests) to run the ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," binary for a\nquick test."]}),"\n",(0,s.jsx)(t.h3,{id:"install-ckb-debugger",children:"Install CKB-Debugger"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["To install, you need ",(0,s.jsx)(t.a,{href:"https://www.rust-lang.org",children:"Rust"})," and\n",(0,s.jsx)(t.a,{href:"https://doc.rust-lang.org/cargo",children:"cargo"})]})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"cargo install --git https://github.com/nervosnetwork/ckb-standalone-debuggger ckb-debugger\n"})}),"\n",(0,s.jsx)(t.h3,{id:"quick-test-with-ckb-debugger",children:"Quick Test with CKB-Debugger"}),"\n",(0,s.jsxs)(t.p,{children:["Now let's run the ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," with some JS test codes."]}),"\n",(0,s.jsxs)(t.p,{children:["Make sure you are in the root of the ",(0,s.jsx)(t.code,{children:"ckb-vm-js"})," project folder:"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(l.A,{value:"ckb-debugger-run",label:"Command",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"ckb-debugger --read-file tests/examples/hello.js --bin build/ckb-js-vm -- -r\n"})})}),(0,s.jsx)(l.A,{value:"ckb-debugger-run-result",label:"Response",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"Run from file, local access enabled. For testing only.\nhello, world\nRun result: 0\nTotal cycles consumed: 30081070(2.9m)\nTransfer cycles: 125121(122.2k), running cycles: 2955949(2.8m)\n"})})})]}),"\n",(0,s.jsxs)(t.p,{children:["with the ",(0,s.jsx)(t.code,{children:"-r"})," option, ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," will read a local JS file via CKB-Debugger. This function is\nintended for testing purposes and does not function in a production environment. However, we can see the\nrunning output, which includes a ",(0,s.jsx)(t.code,{children:"hello, world"})," message. The run result is 0, indicating that the ",(0,s.jsx)(t.code,{children:"hellow.js"})," Script executes successfully.\nAlso, you can see how many ",(0,s.jsx)(t.code,{children:"cycles"}),"(the overhead required to execute a Script) are needed to run the JS Script in the output as well."]}),"\n",(0,s.jsx)(t.h2,{id:"integrate-ckb-js-vm",children:"Integrate ckb-js-vm"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"ckb-js-vm"})," offers different ways to be integrated into your own Scripts. In the next step, we will set\nup a project and writing codes to integrate ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," with JavaScript code to gain a deeper\nunderstanding."]}),"\n",(0,s.jsxs)(t.p,{children:["The first step is to create a new Script project. We use ",(0,s.jsx)(t.a,{href:"https://github.com/cryptape/ckb-script-templates",children:"ckb-script-templates"})," for this purpose. You will need the following dependencies:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"git"}),", ",(0,s.jsx)(t.code,{children:"make"}),", ",(0,s.jsx)(t.code,{children:"sed"}),", ",(0,s.jsx)(t.code,{children:"bash"}),", ",(0,s.jsx)(t.code,{children:"sha256sum"})," and others Unix utilities"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"Rust"})," with ",(0,s.jsx)(t.code,{children:"riscv64"})," target installed: ",(0,s.jsx)(t.code,{children:"rustup target add riscv64imac-unknown-none-elf"})]}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"Clang 16+"})}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"cargo-generate"}),": You can install this via ",(0,s.jsx)(t.code,{children:"cargo install cargo-generate"})]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["If you encounter any problems with these dependencies, refer to the ",(0,s.jsx)(t.a,{href:"https://github.com/cryptape/ckb-script-templates?tab=readme-ov-file#dependencies",children:"ReadMe"})," for installation details."]}),"\n",(0,s.jsx)(t.h3,{id:"init-a-script-project",children:"Init a Script Project"}),"\n",(0,s.jsxs)(t.p,{children:["Now let's run the command to generate a new Script project called ",(0,s.jsx)(t.code,{children:"my-first-script-workspace"}),":"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(l.A,{value:"init-script",label:"Command",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:'alias create-ckb-scripts="cargo generate gh:cryptape/ckb-script-templates workspace"\ncreate-ckb-scripts\n'})})}),(0,s.jsx)(l.A,{value:"init-script-result",label:"Response",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"\u26a0\ufe0f Favorite `gh:cryptape/ckb-script-templates` not found in config, using it as a git repository: https://github.com/cryptape/ckb-script-templates.git\n\ud83e\udd37 Project Name: my-first-script-workspace\n\ud83d\udd27 Destination: /tmp/my-first-script-workspace ...\n\ud83d\udd27 project-name: my-first-script-workspace ...\n\ud83d\udd27 Generating template ...\n\ud83d\udd27 Moving generated files into: `/tmp/my-first-script-workspace`...\n\ud83d\udd27 Initializing a fresh Git repository\n\u2728 Done! New project created /tmp/my-first-script-workspace\n"})})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-a-new-script",children:"Create a New Script"}),"\n",(0,s.jsxs)(t.p,{children:["Let\u2019s create a new Script called ",(0,s.jsx)(t.code,{children:"run-js"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(l.A,{value:"create-a-new-script",label:"Command",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"cd my-first-script-workspace\nmake generate\n"})})}),(0,s.jsx)(l.A,{value:"create-a-new-script-result",label:"Response",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"\ud83e\udd37 Project Name: run-js\n\ud83d\udd27 Destination: /tmp/my-first-script-workspace/contracts/run-js ...\n\ud83d\udd27 project-name: carrot ...\n\ud83d\udd27 Generating template ...\n\ud83d\udd27 Moving generated files into: `/tmp/my-first-script-workspace/contracts/run-js`...\n\ud83d\udd27 Initializing a fresh Git repository\n\u2728 Done! New project created /tmp/my-first-script-workspace/contracts/run-js\n"})})})]}),"\n",(0,s.jsxs)(t.p,{children:["Our project relies on ",(0,s.jsx)(t.code,{children:"ckb-js-vm"}),", so we need to include it in the project. Create a new folder named\n",(0,s.jsx)(t.code,{children:"deps"})," in the root of our Script workspace:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"cd my-first-script-workspace\nmkdir deps\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Copy the ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," binary we built before into the ",(0,s.jsx)(t.code,{children:"deps"})," folder. When you're done, it should look like this:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"--build\n--contracts\n--deps\n --ckb-js-vm\n...\n"})}),"\n",(0,s.jsx)(t.p,{children:"Everything looks good now!"}),"\n",(0,s.jsx)(t.h3,{id:"integrate-via-script",children:"Integrate via Script"}),"\n",(0,s.jsxs)(t.p,{children:["The simplest way to run JavaScript code using ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," is via a Script. A ",(0,s.jsx)(t.code,{children:"ckb-js-vm"})," Script has the\nfollowing structure:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"code_hash: