### Install Development Dependencies Source: https://zips.z.cash/zip-guide-markdown Installs necessary tools like Python 3 pip, Perl, sed, cmake, docutils, rst2html5, and MultiMarkdown-6 for building ZIP documentation. ```bash sudo apt install python3-pip perl sed cmake pip3 install 'docutils==0.21.2' 'rst2html5==2.0.1' git clone -b develop https://github.com/Electric-Coin-Company/MultiMarkdown-6 cd MultiMarkdown-6 make release cd build make sudo make install ``` -------------------------------- ### Install Development Tools Source: https://zips.z.cash/zip-guide Installs necessary tools like docutils, rst2html5, and MultiMarkdown-6 for validating ZIP documents. This is an optional step before publishing a PR. ```bash sudo apt install python3-pip perl sed cmake pip3 install 'docutils==0.21.2' 'rst2html5==2.0.1' git clone -b develop https://github.com/Electric-Coin-Company/MultiMarkdown-6 cd MultiMarkdown-6 make release cd build make sudo make install ``` -------------------------------- ### Date Format Example Source: https://zips.z.cash/zip-0000 Demonstrates the required yyyy-mm-dd format for the Created header. ```text 2001-08-14 ``` -------------------------------- ### Example PrivateUseSubject in Zashi Source: https://zips.z.cash/zip-0325 An example of a private-use subject string used by Zashi, highlighting potential naming issues. ```text “metadata” ``` -------------------------------- ### Wallet.dat Key-Value Structure Example Source: https://zips.z.cash/zip-0400 Illustrates the key-value structure within the wallet.dat database, showing how property names, public keys, and private keys are organized. ```text <------ KEY ----+- VALUE -> --------------------------- | zkey | pubkey | privkey | --------------------------- ``` -------------------------------- ### mining.subscribe Request Example Source: https://zips.z.cash/zip-0301 Example of a mining.subscribe request. Use this to initiate a connection with a mining pool and potentially resume a previous session. ```json {"id": 1, "method": "mining.subscribe", "params": ["_MINER_USER_AGENT_ ", "_SESSION_ID_ ", "_CONNECT_HOST_ ", _CONNECT_PORT_]} ``` -------------------------------- ### mining.authorize Request Example Source: https://zips.z.cash/zip-0301 Example of a mining.authorize request. Miners must use this method to authorize a worker before submitting solutions. ```json {"id": 2, "method": "mining.authorize", "params": ["_WORKER_NAME_ ", "_WORKER_PASSWORD_ "]} ``` -------------------------------- ### Transaction Digest Calculation Example Source: https://zips.z.cash/zip-0243 Example of calculating a transaction digest with specific parameters for nIn and nHashType. ```plaintext Transaction digest with `nIn = 0` and `nHashType = 2` (`SIGHASH_NONE`): ``` hashPrevouts: BLAKE2b-256('ZcashPrevoutHash', 0bbe32a598c22adfb48cef72ba5d4287c0cefbacfd8ce195b4963c34a94bba7a175dae4b090f47a068e227433f9e49d3aa09e356d8d66d0c0121e91a3c4aa3f27fa1b63396e2b41d) = cacf0f5210cce5fa65a59f314292b3111d299e7d9d582753cf61e1e408552ae4 hashShieldedOutputs: ``` -------------------------------- ### Markdown Citation Example Source: https://zips.z.cash/zip-guide-markdown Example of how to cite a reference using [^shortname] syntax in Markdown and format the corresponding entry in the References section. ```markdown [^snark] [The Hunting of the Snark](https://www.gutenberg.org/files/29888/29888-h/29888-h.htm). Lewis Carroll, with illustrations by Henry Holiday. MacMillan and Co. London. March 29, 1876. ``` -------------------------------- ### mining.authorize Response Example (Success) Source: https://zips.z.cash/zip-0301 Example of a successful mining.authorize response. The 'result' field is true, indicating successful authorization. ```json {"id": 2, "result": true, "error": null} ``` -------------------------------- ### Owner Format Example Source: https://zips.z.cash/zip-0000 Specifies the format for listing ZIP owners, including name and email address. ```text Random J. User
``` -------------------------------- ### Example ZIP License Header Source: https://zips.z.cash/zip-0000 This snippet shows how to specify acceptable licenses for a ZIP in its preamble. Multiple licenses can be listed, indicating an 'OR' choice for compliance. ```text License: BSD-2-Clause GNU-All-Permissive ``` -------------------------------- ### Example Zcash Payment URI with Asset Request Source: https://zips.z.cash/zip-0321 A sample payment URI that includes a `req-asset` parameter for a specific asset, demonstrating how to request a payment of a non-ZEC asset. ```plaintext zcash:utest1q9d6gqg...7y0d9zj7ns2ceqk4j0d6ngqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq7e4t0p ?req-asset=AEcnAAAAAAAAAADerb7v3q2-796tvu_erb7v3q2-796tvu_erb7v3q2-7xEiM0RVZneImQCqu8zd7v8AESIzRFVmd4iZqrvM3e7_ ``` -------------------------------- ### Example Memo Shuffle Order Source: https://zips.z.cash/zip-0231 Illustrates the order-preserving shuffle algorithm for combining memo chunks from different memos. Memo chunks from the same memo maintain their relative order. ```plaintext [ (memo_a, 0), (memo_b, 0), (memo_a, 1), (memo_c, 0), (memo_c, 1), (memo_a, 2), ] ``` -------------------------------- ### Zcash P2SH Multisig Seeds Source: https://zips.z.cash/zip-0048 Example seeds for three participants in a 2-of-3 P2SH multisig setup on Zcash mainnet. ```json [ "0101010101010101010101010101010101010101010101010101010101010101", "0202020202020202020202020202020202020202020202020202020202020202", "0303030303030303030303030303030303030303030303030303030303030303" ] ``` -------------------------------- ### Build HTML Documentation Source: https://zips.z.cash/zip-guide-markdown Builds the HTML version of a ZIP document using the 'make' command. Assumes the document is named 'draft-myzip.rst' or 'draft-myzip.md' and is in the repository root. ```bash make draft-myzip.html ``` ```bash make ``` -------------------------------- ### mining.set_target Server Message Example Source: https://zips.z.cash/zip-0301 Example of a mining.set_target server message. This message sets the target difficulty for mining operations. ```json {"id": null, "method": "mining.set_target", "params": ["_TARGET_ "]} ``` -------------------------------- ### mining.authorize Response Example (Error) Source: https://zips.z.cash/zip-0301 Example of a failed mining.authorize response. The 'error' field contains details about the authorization failure. ```json {"id": 2, "result": null, "error": _ERROR_} ``` -------------------------------- ### Orchard Key Derivation (use_qsk = true) Source: https://zips.z.cash/zip-2005 Illustrates the derivation of Orchard key components when use_qsk is true, including direct generation of ask and its public counterpart akP. This method is used for generating spend authorizing keys. ```plaintext let ak=ExtractP(akP) let qsk=Hqsk(sk) let qk=Hqk(qsk) let rivk=Hqkrivk_ext(ak, nk) ``` -------------------------------- ### Light Client Synchronization Phases with Bucketing Source: https://zips.z.cash/zip-0307 Illustrates the modified synchronization phases (B and D) for a light client using block bucketing to reduce information leakage. It shows the interaction between the client and server, including block range queries based on bucketed heights. ```text Phase Client Server ===== ============================ B GetLatestBlock ------------> <---------------- BlockID(Y) GetBlockRange(⌊X⌋, Y) -----> <-------- CompactBlock(⌊X⌋) <-------- CompactBlock(⌊X⌋+1) <-------- CompactBlock(⌊X⌋+2) ... <-------- CompactBlock(Y-1) <-------- CompactBlock(Y) === D GetLatestBlock ------------> <---------------- BlockID(Z) GetBlockRange(⌊Y⌋, Z) -----> <-------- CompactBlock(⌊Y⌋) <-------- CompactBlock(⌊Y⌋+1) ... <-------- CompactBlock(Z-1) <-------- CompactBlock(Z) ``` -------------------------------- ### Configure Migration Option Source: https://zips.z.cash/zip-0308 Set the migration status using a command-line flag. Use 0 for disabled and 1 for enabled. ```bash -migration=0/1 ``` -------------------------------- ### reStructuredText Citation Example Source: https://zips.z.cash/zip-guide-markdown Example of how to cite a reference using [#shortname]_ syntax in reStructuredText and format the corresponding entry in the References section. ```rst .. [#snark] `The Hunting of the Snark