Skip to content Search Apps Documentation Source Content File Folder Download Copy Actions State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.

package.gno

15.95 Kb · 42 lines
 1// Community-authored educational resource, prepared 2026-10-08.
 2// Attribution: Gno.land https://gno.land/ ; sources linked in the rendered pages.
 3package public_good_guide_20261008
 4
 5const base = "/r/g1hl9dtl90l8pultlz2wxh54xdj8mz4r2myly5fu/public_good_guide_20261008"
 6
 7func Render(path string) string {
 8	if path == "" || path == "home" {
 9		return home()
10	}
11	if path == "start" {
12		return start()
13	}
14	if path == "contribute" {
15		return contribute()
16	}
17	if path == "evidence" {
18		return evidence()
19	}
20	return "# Page not found / \u9875\u9762\u4e0d\u5b58\u5728\n\n[Home / \u9996\u9875](" + base + ")"
21}
22
23func navigation() string {
24	return "\n\n---\n[Home / \u9996\u9875](" + base + ") | [Start / \u5165\u95e8](" + base + ":start) | [Contribute / \u8d21\u732e](" + base + ":contribute) | [Evidence / \u8bc1\u636e](" + base + ":evidence)\n\nBuilt for the community on [Gno.land](https://gno.land/). Independent educational contribution; not an official endorsement. \u793e\u533a\u6559\u80b2\u8d44\u6599\uff0c\u975e\u5b98\u65b9\u80cc\u4e66\u3002\n"
25}
26
27
28func home() string {
29	return "# Gno Public Good Guide / Gno \u516c\u76ca\u5171\u5b66\u7ad9\n\nFree bilingual learning resources for people entering the Gno ecosystem.\n\u4e3a\u8fdb\u5165 Gno \u751f\u6001\u7684\u4eba\u63d0\u4f9b\u514d\u8d39\u3001\u4e2d\u82f1\u53cc\u8bed\u3001\u9644\u6765\u6e90\u7684\u5b66\u4e60\u6750\u6599\u3002\n\nEdition: 2026-10-08. Network facts are a dated snapshot; verify them again before use.\n\u7248\u672c\u65e5\u671f\uff1a2026-10-08\u3002\u7f51\u7edc\u4e8b\u5b9e\u662f\u5f53\u65e5\u5feb\u7167\uff0c\u4f7f\u7528\u524d\u8bf7\u91cd\u65b0\u6838\u9a8c\u3002\n\n## Three small public goods / \u4e09\u4efd\u53ef\u590d\u7528\u7684\u516c\u76ca\u8d44\u6599\n\n1. **Start / \u5165\u95e8** \u2014 identify the network, protect credentials, and understand what a transaction proves.\n   \u8bc6\u522b\u771f\u5b9e\u7f51\u7edc\u3001\u4fdd\u62a4\u51ed\u636e\u3001\u7406\u89e3\u4ea4\u6613\u7a76\u7adf\u80fd\u8bc1\u660e\u4ec0\u4e48\u3002\n2. **Contribute / \u8d21\u732e** \u2014 turn a confusing first encounter into documentation, reproducible tests, and useful open-source work.\n   \u5c06\u65b0\u624b\u9047\u5230\u7684\u56f0\u96be\u8f6c\u5316\u4e3a\u6587\u6863\u3001\u53ef\u590d\u73b0\u5b9e\u4f8b\u4e0e\u5f00\u6e90\u8d21\u732e\u3002\n3. **Evidence / \u8bc1\u636e** \u2014 a practical template for documenting public-good work without exposing beneficiaries.\n   \u8bb0\u5f55\u516c\u76ca\u5de5\u4f5c\u7684\u65b9\u6cd5\uff0c\u517c\u987e\u8bc1\u636e\u548c\u53d7\u52a9\u8005\u9690\u79c1\u3002\n\n## What this resource does / \u672c\u7ad9\u529f\u80fd\n\nThe text is embedded in this package. Render only returns text; this package contains no token-transfer functions, collection form, donation address, tracking script, or administrator update function. Readers do not need to sign a transaction to read it. External links lead to separately maintained sites.\n\n\u6b63\u6587\u76f4\u63a5\u5b58\u653e\u5728\u672c\u5305\u4e2d\u3002Render \u53ea\u8fd4\u56de\u6587\u5b57\uff1b\u672c\u5305\u6ca1\u6709\u4ee3\u5e01\u8f6c\u8d26\u51fd\u6570\u3001\u4fe1\u606f\u6536\u96c6\u8868\u5355\u3001\u52df\u6350\u5730\u5740\u3001\u8ffd\u8e2a\u811a\u672c\u6216\u7ba1\u7406\u5458\u66f4\u65b0\u51fd\u6570\u3002\u8bfb\u8005\u65e0\u9700\u7b7e\u7f72\u4ea4\u6613\u5373\u53ef\u9605\u8bfb\u3002\u5916\u90e8\u94fe\u63a5\u6307\u5411\u72ec\u7acb\u7ef4\u62a4\u7684\u7f51\u7ad9\u3002\n\nPublication records authorship and content, not proof that anyone has benefited. A durable record still depends on the network and archives continuing to exist; no website can promise unconditional eternity.\n\n\u53d1\u5e03\u8bb0\u5f55\u80fd\u8bc1\u660e\u5185\u5bb9\u4e0e\u53d1\u5e03\u884c\u4e3a\uff0c\u4e0d\u80fd\u81ea\u52a8\u8bc1\u660e\u5df2\u7ecf\u5e2e\u52a9\u4e86\u591a\u5c11\u4eba\u3002\u957f\u671f\u7559\u5b58\u4ecd\u4f9d\u8d56\u7f51\u7edc\u548c\u6863\u6848\u6301\u7eed\u5b58\u5728\uff0c\u4efb\u4f55\u7f51\u7ad9\u90fd\u65e0\u6cd5\u65e0\u6761\u4ef6\u4fdd\u8bc1\u6c38\u8fdc\u53ef\u7528\u3002\n" + navigation()
30}
31
32func start() string {
33	return "# Start safely / \u5b89\u5168\u5165\u95e8\n\n## 1. Identify the chain / \u5148\u8ba4\u6e05\u94fe\n\nAt this edition's date, the official mainnet identity is **gnoland-1**, with RPC **https://rpc.gno.land:443**. The official mainnet announcement says it is a fresh chain, distinct from betanet. A wallet label alone is insufficient: compare the node's /status network field with the transaction's chain ID.\n\n\u672c\u7248\u8bb0\u5f55\u7684\u4e3b\u7f51\u6807\u8bc6\u4e3a **gnoland-1**\uff0cRPC \u4e3a **https://rpc.gno.land:443**\u3002\u5b98\u65b9\u516c\u544a\u8bf4\u660e\u5b83\u662f\u72ec\u7acb\u65b0\u94fe\u3002\u4e0d\u8981\u53ea\u76f8\u4fe1\u94b1\u5305\u6216\u7f51\u9875\u4e2d\u7684\u7f51\u7edc\u540d\u79f0\uff0c\u5e94\u5bf9\u7167\u8282\u70b9 /status \u7684 network \u5b57\u6bb5\u4e0e\u5f85\u7b7e\u4ea4\u6613\u7684\u94fe ID\u3002\n\nThe September 29 announcement introduces **Onyx (onyx-1)** for mainnet-like testing. Some documentation may still name Pearl. Use dated announcements and actual node status together. Testnet balances and transactions do not prove a mainnet result.\n\n9 \u6708 29 \u65e5\u516c\u544a\u4ecb\u7ecd\u4e86\u7528\u4e8e\u63a5\u8fd1\u4e3b\u7f51\u73af\u5883\u6d4b\u8bd5\u7684 **Onyx\uff08onyx-1\uff09**\uff1b\u90e8\u5206\u6587\u6863\u4ecd\u53ef\u80fd\u5199 Pearl\u3002\u5e94\u7ed3\u5408\u516c\u544a\u65e5\u671f\u4e0e\u8282\u70b9\u72b6\u6001\u5224\u65ad\u3002\u6d4b\u8bd5\u7f51\u4f59\u989d\u548c\u4ea4\u6613\u4e0d\u80fd\u8bc1\u660e\u4e3b\u7f51\u6210\u679c\u3002\n\n## 2. Understand the cost / \u5206\u6e05\u8d39\u7528\n\n1 GNOT = 1,000,000 ugnot. Reading a rendered page is a query. Publishing or changing state requires a transaction. Check the wallet's total fee, gas limit, storage deposit and any attached token amount separately. Simulate first where supported. Failed on-chain transactions can still cost fees.\n\n1 GNOT \u7b49\u4e8e 1,000,000 ugnot\u3002\u6d4f\u89c8\u9875\u9762\u5c5e\u4e8e\u67e5\u8be2\uff0c\u53d1\u5e03\u6216\u4fee\u6539\u72b6\u6001\u9700\u8981\u4ea4\u6613\u3002\u5206\u522b\u67e5\u770b\u94b1\u5305\u4e2d\u7684\u603b\u624b\u7eed\u8d39\u3001gas \u4e0a\u9650\u3001\u5b58\u50a8\u62bc\u91d1\u548c\u9644\u5e26\u8f6c\u8d26\u91d1\u989d\uff1b\u652f\u6301\u6a21\u62df\u65f6\u5148\u6a21\u62df\u3002\u5931\u8d25\u7684\u94fe\u4e0a\u4ea4\u6613\u4ecd\u53ef\u80fd\u6536\u8d39\u3002\n\n## 3. Protect people and credentials / \u4fdd\u62a4\u4eba\u4e0e\u51ed\u636e\n\nNever put passwords, seed phrases, private keys, phone numbers, home addresses, medical records, or identifying beneficiary lists on chain. Use a dedicated publishing account and retain a private local copy of receipts. Review every requested action and recipient.\n\n\u4e0d\u8981\u628a\u5bc6\u7801\u3001\u52a9\u8bb0\u8bcd\u3001\u79c1\u94a5\u3001\u7535\u8bdd\u53f7\u7801\u3001\u5bb6\u5ead\u4f4f\u5740\u3001\u533b\u7597\u8bb0\u5f55\u6216\u53ef\u8bc6\u522b\u53d7\u52a9\u8005\u7684\u540d\u5355\u5199\u4e0a\u94fe\u3002\u4f7f\u7528\u72ec\u7acb\u53d1\u5e03\u8d26\u6237\uff0c\u5728\u672c\u5730\u4fdd\u7559\u56de\u6267\u3002\u9010\u9879\u6838\u5bf9\u4ea4\u6613\u884c\u4e3a\u53ca\u63a5\u6536\u65b9\u3002\n\n## 4. Verify the result / \u9a8c\u8bc1\u6210\u679c\n\nA saved editor draft or shared Playground link is not a chain receipt. Record chain ID, transaction hash, block height, success result, package path and source digest. Read the source back from the chain. Check activation separately: the mainnet launch policy parks newly submitted code until package approval.\n\n\u7f16\u8f91\u5668\u8349\u7a3f\u3001Playground \u5206\u4eab\u94fe\u63a5\u90fd\u4e0d\u662f\u94fe\u4e0a\u56de\u6267\u3002\u5e94\u8bb0\u5f55\u94fe ID\u3001\u4ea4\u6613\u54c8\u5e0c\u3001\u533a\u5757\u9ad8\u5ea6\u3001\u6267\u884c\u7ed3\u679c\u3001\u5305\u8def\u5f84\u53ca\u6e90\u7801\u6458\u8981\uff0c\u518d\u4ece\u94fe\u4e0a\u8bfb\u56de\u6e90\u7801\u3002\u8fd0\u884c\u72b6\u6001\u8981\u53e6\u884c\u6838\u5b9e\uff1a\u4e3b\u7f51\u4e0a\u7ebf\u65f6\u91c7\u7528\u4e86\u65b0\u4ee3\u7801\u5f85\u5305\u5ba1\u6279\u540e\u6fc0\u6d3b\u7684\u673a\u5236\u3002\n\n## Sources / \u6765\u6e90\n\n- [Mainnet announcement](https://gno.land/r/gnoland/blog:p/gnoland-1)\n- [Onyx announcement](https://gno.land/r/gnoland/blog:p/onyx-1)\n- [Network documentation](https://docs.gno.land/resources/gnoland-networks/)\n- [Storage deposits](https://docs.gno.land/resources/storage-deposit/)\n- [Official repository](https://github.com/gnolang/gno)\n" + navigation()
34}
35
36func contribute() string {
37	return "# Make a useful contribution / \u505a\u6709\u7528\u7684\u5f00\u6e90\u8d21\u732e\n\n## A small ecosystem map / \u4e00\u5f20\u7b80\u660e\u5730\u56fe\n\n- **Gno / GnoVM**: deterministic Go-like contracts and automatically persisted state. \u5b66\u4e60\u4ee3\u7801\u4e0e\u72b6\u6001\u5982\u4f55\u5728\u94fe\u4e0a\u6267\u884c\u548c\u7559\u5b58\u3002\n- **Playground / gnodev**: write, test and preview a small realm. \u5728\u6d4f\u89c8\u5668\u6216\u672c\u5730\u6d4b\u8bd5\u5c0f\u578b\u5e94\u7528\u3002\n- **Gnoweb**: read a realm's rendered content and inspect source. \u67e5\u770b\u5e94\u7528\u5185\u5bb9\u4e0e\u6e90\u7801\u3002\n- **Adena / gnokey**: wallet and signing tools. \u7ba1\u7406\u8eab\u4efd\u5e76\u7b7e\u7f72\u660e\u786e\u7684\u64cd\u4f5c\u3002\n- **Gnoscan**: inspect accounts, blocks and transactions; confirm its selected network. \u67e5\u8be2\u8d26\u6237\u3001\u533a\u5757\u548c\u4ea4\u6613\uff0c\u5148\u786e\u8ba4\u6240\u9009\u7f51\u7edc\u3002\n- **GovDAO / Boards**: observe governance and community discussions. \u9605\u8bfb\u6cbb\u7406\u4e0e\u793e\u533a\u8ba8\u8bba\uff0c\u53c2\u4e0e\u524d\u7406\u89e3\u89c4\u5219\u3002\n\n## A contribution anyone can start / \u4eba\u4eba\u53ef\u4ee5\u5f00\u59cb\u7684\u8d21\u732e\n\n1. Find one reproducible obstacle: a stale network label, missing translation, broken example, or unclear error.\n   \u627e\u5230\u4e00\u4e2a\u53ef\u590d\u73b0\u7684\u95ee\u9898\uff0c\u4f8b\u5982\u65e7\u7f51\u7edc\u540d\u79f0\u3001\u7f3a\u5931\u7ffb\u8bd1\u3001\u5931\u6548\u793a\u4f8b\u6216\u4e0d\u6e05\u6670\u7684\u62a5\u9519\u3002\n2. Record the date, network, tool version, exact steps, expected result and actual result. Remove all secrets.\n   \u8bb0\u5f55\u65e5\u671f\u3001\u7f51\u7edc\u3001\u5de5\u5177\u7248\u672c\u3001\u6b65\u9aa4\u3001\u9884\u671f\u4e0e\u5b9e\u9645\u7ed3\u679c\uff0c\u5220\u9664\u5168\u90e8\u79d8\u5bc6\u4fe1\u606f\u3002\n3. Make the smallest useful repair. Test it locally or on the current testnet before proposing production use.\n   \u5236\u4f5c\u8303\u56f4\u660e\u786e\u7684\u5c0f\u4fee\u590d\uff0c\u5148\u5728\u672c\u5730\u6216\u5f53\u524d\u6d4b\u8bd5\u7f51\u9a8c\u8bc1\u3002\n4. Link original sources; label translations and interpretations. Do not silently copy an old network value into a new guide.\n   \u4fdd\u7559\u539f\u59cb\u6765\u6e90\uff0c\u6ce8\u660e\u7ffb\u8bd1\u4e0e\u89e3\u91ca\uff0c\u4e0d\u8981\u65e0\u63d0\u793a\u5730\u628a\u65e7\u7f51\u7edc\u53c2\u6570\u5199\u5165\u65b0\u6307\u5357\u3002\n5. Submit through the project's contribution process. Record the issue or change link and its real review status.\n   \u6309\u9879\u76ee\u6d41\u7a0b\u63d0\u4ea4\uff0c\u8bb0\u5f55\u771f\u5b9e\u7684\u8bae\u9898\u6216\u4fee\u6539\u94fe\u63a5\u53ca\u5ba1\u6838\u72b6\u6001\u3002\n\nSuggested first exercise: create a Render-only resource page with several routes, test known and unknown routes, and document its fee and verification procedure. Do not count automated transactions as evidence of social impact.\n\n\u5efa\u8bae\u7684\u9996\u4e2a\u7ec3\u4e60\uff1a\u5236\u4f5c\u5e26\u591a\u4e2a\u8def\u7531\u3001\u53ea\u8bfb Render \u7684\u8d44\u6599\u9875\uff1b\u6d4b\u8bd5\u5df2\u77e5\u53ca\u672a\u77e5\u8def\u5f84\uff0c\u8bb0\u5f55\u8d39\u7528\u548c\u6838\u9a8c\u65b9\u6cd5\u3002\u4e0d\u8981\u7528\u81ea\u52a8\u5316\u4ea4\u6613\u6b21\u6570\u4ee3\u66ff\u5b9e\u9645\u516c\u76ca\u6548\u679c\u3002\n\n## Reliable starting points / \u53ef\u9760\u5165\u53e3\n\n- [Official documentation](https://docs.gno.land/)\n- [Gno source and contribution process](https://github.com/gnolang/gno)\n- [Workshops](https://github.com/gnolang/workshops)\n- [Community projects](https://github.com/gnoverse)\n- [Ecosystem directory](https://gno.land/ecosystem)\n- [Gnoscan](https://gnoscan.io/)\n- [GovDAO](https://gno.land/r/gov/dao)\n\nDirectory presence is not a security audit or proof of current mainnet deployment. \u9879\u76ee\u88ab\u76ee\u5f55\u6536\u5f55\uff0c\u4e0d\u7b49\u4e8e\u5df2\u7ecf\u8fc7\u5b89\u5168\u5ba1\u8ba1\uff0c\u4e5f\u4e0d\u7b49\u4e8e\u5df2\u90e8\u7f72\u5230\u5f53\u524d\u4e3b\u7f51\u3002\n" + navigation()
38}
39
40func evidence() string {
41	return "# Public-good evidence template / \u516c\u76ca\u884c\u52a8\u8bc1\u636e\u6a21\u677f\n\nCopy this structure into your own project record. The template is a method, not a claim that a donation or activity has happened.\n\u53ef\u5c06\u672c\u7ed3\u6784\u590d\u7528\u4e8e\u81ea\u5df1\u7684\u9879\u76ee\u8bb0\u5f55\u3002\u6a21\u677f\u672c\u8eab\u4e0d\u8868\u793a\u4efb\u4f55\u6350\u8d60\u6216\u516c\u76ca\u6d3b\u52a8\u5df2\u7ecf\u53d1\u751f\u3002\n\n## A. Purpose / \u76ee\u6807\n\n- Problem and intended audience / \u95ee\u9898\u53ca\u670d\u52a1\u5bf9\u8c61\uff1a\n- Concrete deliverable and public access method / \u5177\u4f53\u4ea7\u51fa\u4e0e\u516c\u5f00\u8bbf\u95ee\u65b9\u5f0f\uff1a\n- Date, scope and limits / \u65e5\u671f\u3001\u8303\u56f4\u53ca\u9650\u5236\uff1a\n\n## B. Action and cost / \u884c\u52a8\u4e0e\u6210\u672c\n\n- What was actually completed / \u5b9e\u9645\u5b8c\u6210\u4e8b\u9879\uff1a\n- Materials or source version / \u6750\u6599\u6216\u6e90\u7801\u7248\u672c\uff1a\n- Fee actually charged / \u5b9e\u9645\u624b\u7eed\u8d39\uff1a\n- Storage deposit locked, separately stated / \u5355\u72ec\u5217\u51fa\u7684\u9501\u5b9a\u5b58\u50a8\u62bc\u91d1\uff1a\n- Other spending, purpose and receipt / \u5176\u4ed6\u652f\u51fa\u3001\u7528\u9014\u4e0e\u51ed\u636e\uff1a\n\nDo not publish personal financial documents or beneficiary identities. Aggregate results where possible, and keep consent records off chain.\n\u4e0d\u8981\u516c\u5f00\u4e2a\u4eba\u8d22\u52a1\u6750\u6599\u6216\u53d7\u52a9\u8005\u8eab\u4efd\u3002\u5c3d\u53ef\u80fd\u6c47\u603b\u5448\u73b0\u7ed3\u679c\uff0c\u5e76\u5c06\u540c\u610f\u8bb0\u5f55\u4fdd\u7559\u5728\u7ebf\u4e0b\u3002\n\n## C. Chain evidence / \u94fe\u4e0a\u8bc1\u636e\n\n- Chain ID and RPC / \u94fe ID \u4e0e\u8282\u70b9\uff1a\n- Transaction hash, block height and timestamp / \u4ea4\u6613\u54c8\u5e0c\u3001\u533a\u5757\u9ad8\u5ea6\u4e0e\u65f6\u95f4\uff1a\n- Execution success or failure / \u6267\u884c\u6210\u529f\u6216\u5931\u8d25\uff1a\n- Package path and source digest / \u5305\u8def\u5f84\u4e0e\u6e90\u7801\u6458\u8981\uff1a\n- Read-back check and activation status / \u8bfb\u56de\u6838\u9a8c\u4e0e\u6fc0\u6d3b\u72b6\u6001\uff1a\n\n## D. Outcome and uncertainty / \u6548\u679c\u4e0e\u4e0d\u786e\u5b9a\u6027\n\n- Observable use or feedback, with consent / \u7ecf\u540c\u610f\u8bb0\u5f55\u7684\u5b9e\u9645\u4f7f\u7528\u6216\u53cd\u9988\uff1a\n- What the evidence does not establish / \u8bc1\u636e\u5c1a\u4e0d\u80fd\u8bc1\u660e\u7684\u4e8b\u9879\uff1a\n- Correction procedure and next review date / \u66f4\u6b63\u529e\u6cd5\u4e0e\u4e0b\u6b21\u590d\u6838\u65e5\u671f\uff1a\n\nA transaction proves a recorded action, not the truth of an off-chain assertion. A content hash checks that bytes match, not that their claims are correct. A published learning resource is a deliverable; learning benefit requires separate evidence.\n\n\u4ea4\u6613\u53ef\u4ee5\u8bc1\u660e\u88ab\u8bb0\u5f55\u7684\u64cd\u4f5c\uff0c\u4e0d\u80fd\u81ea\u52a8\u8bc1\u660e\u94fe\u5916\u9648\u8ff0\u4e3a\u771f\u3002\u5185\u5bb9\u6458\u8981\u53ef\u4ee5\u6838\u5bf9\u5b57\u8282\u4e00\u81f4\u6027\uff0c\u4e0d\u80fd\u8bc1\u660e\u5185\u5bb9\u6b63\u786e\u3002\u53d1\u5e03\u5b66\u4e60\u6750\u6599\u662f\u4e00\u9879\u4ea7\u51fa\uff1b\u5b9e\u9645\u5b66\u4e60\u6548\u679c\u9700\u8981\u53e6\u884c\u4e3e\u8bc1\u3002\n\nFor corrections, publish an explicitly dated successor and link the earlier version. Preserve the distinction between original evidence and later interpretation.\n\u9700\u8981\u66f4\u6b63\u65f6\uff0c\u53d1\u5e03\u6ce8\u660e\u65e5\u671f\u7684\u540e\u7eed\u7248\u672c\u5e76\u94fe\u63a5\u65e7\u7248\uff0c\u533a\u5206\u539f\u59cb\u8bc1\u636e\u4e0e\u540e\u6765\u7684\u89e3\u91ca\u3002\n" + navigation()
42}