{"id":25760354,"url":"https://github.com/platonnetwork/platon-go","last_synced_at":"2026-03-06T08:05:15.048Z","repository":{"id":37736217,"uuid":"161629033","full_name":"PlatONnetwork/PlatON-Go","owner":"PlatONnetwork","description":"Golang implementation of the PlatON protocol","archived":false,"fork":false,"pushed_at":"2025-04-01T06:05:31.000Z","size":234728,"stargazers_count":421,"open_issues_count":5,"forks_count":149,"subscribers_count":50,"default_branch":"develop","last_synced_at":"2025-04-03T03:33:02.306Z","etag":null,"topics":["bft-protocols","distributed-computing","distributed-ledger","distributed-systems","privacy-preserving","private-blockchain","wasm"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PlatONnetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-13T11:26:18.000Z","updated_at":"2025-04-01T06:05:39.000Z","dependencies_parsed_at":"2024-02-04T10:50:47.530Z","dependency_job_id":"2f4abcf6-bdef-4bd3-9e1b-a0346e6a8b4c","html_url":"https://github.com/PlatONnetwork/PlatON-Go","commit_stats":{"total_commits":16368,"total_committers":447,"mean_commits":36.61744966442953,"dds":0.8363880742913001,"last_synced_commit":"fb7196c6605648984253abd197c37d40caa94b8f"},"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlatONnetwork%2FPlatON-Go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlatONnetwork%2FPlatON-Go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlatONnetwork%2FPlatON-Go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlatONnetwork%2FPlatON-Go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PlatONnetwork","download_url":"https://codeload.github.com/PlatONnetwork/PlatON-Go/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166853,"owners_count":21058481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bft-protocols","distributed-computing","distributed-ledger","distributed-systems","privacy-preserving","private-blockchain","wasm"],"created_at":"2025-02-26T18:19:06.513Z","updated_at":"2026-03-06T08:05:15.036Z","avatar_url":"https://github.com/PlatONnetwork.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Go PlatON\n\nWelcome to the PlatON-Go source code repository! This is an Ethereum-based、high-performance and high-security implementation of the PlatON protocol.\nMost of peculiarities according the PlatON's **whitepaper**([English](https://www.platon.network/pdf/en/PlatON_A_High-Efficiency_Trustless_Computing_Network_Whitepaper_EN.pdf)|[中文](https://www.platon.network/pdf/zh/PlatON_A_High-Efficiency_Trustless_Computing_Network_Whitepaper_ZH.pdf)) has been developed.\n\n[![API Reference](\nhttps://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f676f6c616e672f6764646f3f7374617475732e737667\n)](https://pkg.go.dev/github.com/PlatONnetwork/PlatON-Go?tab=doc)\n[![Go Report Card](https://goreportcard.com/badge/github.com/PlatONnetwork/PlatON-Go)](https://goreportcard.com/report/github.com/PlatONnetwork/PlatON-Go)\n[![Build Status](https://github.com/PlatONnetwork/PlatON-Go/workflows/unittest/badge.svg)](https://github.com/PlatONnetwork/PlatON-Go/actions)\n[![codecov](https://codecov.io/gh/PlatONnetwork/PlatON-Go/branch/feature-mainnet-launch/graph/badge.svg)](https://codecov.io/gh/PlatONnetwork/PlatON-Go)\n[![version](https://img.shields.io/github/v/tag/PlatONnetwork/PlatON-Go)](https://github.com/PlatONnetwork/PlatON-Go/releases/latest)\n[![GitHub All Releases](https://img.shields.io/github/downloads/PlatONnetwork/PlatON-Go/total.svg)](https://github.com/PlatONnetwork/PlatON-Go)\n\n## Building the source\nThe requirements to build PlatON-Go are:\n\n- OS:Windows10/Ubuntu18.04\n- [Golang](https://golang.org/doc/install) :version 1.22+\n- [cmake](https://cmake.org/) :version 3.0+\n- [g++\u0026gcc](http://gcc.gnu.org/) :version 7.4.0+\n\u003e 'cmake' and 'gcc\u0026g++' are usually built-in with Ubuntu\n\nIn addition, the following libraries needs to be installed manually\n\n```\nsudo apt install libgmp-dev libssl-dev\n```\nThen, clone the repository and download dependency\n\n```\ngit clone https://github.com/PlatONnetwork/PlatON-Go.git --recursive\n\ncd PlatON-Go \u0026\u0026 go mod download\n```\n\nUbuntu:\n\n```\nmake all\n```\n\nWindows:\n\n```\ngo run build\\ci.go install \n```\n\nThe resulting binary will be placed in '$PlatON-Go/build/bin' .\n\n## Getting Started\n\nThe project comes with several executables found in the `build/bin` directory.\n\n| Command    | Description |\n|:----------:|-------------|\n| **`platon`** | Our main PlatON CLI client. It is the entry point into the PlatON network |\n| `platonkey`    | a key related tool. |\n\n### Hardware Requirements\n\nMinimum:\n\n* CPU with 2+ cores\n* 8GB RAM\n* 1TB free storage space to sync the Mainnet\n* 8 MBit/sec download Internet service\n\nRecommended:\n\n* Fast CPU with 4+ cores\n* 16GB+ RAM\n* High Performance SSD with at least 1TB free space\n* 25+ MBit/sec download Internet service\n\n### Generate the keys\n\nEach node requires two pairs of public\u0026private keys, the one is called node's keypair, it's generated based on the secp256k1 curve for marking the node identity and signning the block, and the other is called node's blskeypair, it's based on the BLS_12_381 curve and is used for consensus verifying. These two pairs of public-private key need to be generated by the platonkey tool.\n\nSwitch to the directory where contains 'platonkey.exe'(Windows) or 'platonkey'(Ubuntu).\nNode's keypair(Ubuntu for example):\n\n```\nplatonkey genkeypair\nPrivateKey:  1abd1200759d4693f4510fbcf7d5caad743b11b5886dc229da6c0747061fca36\nPublicKey :  8917c748513c23db46d23f531cc083d2f6001b4cc2396eb8412d73a3e4450ffc5f5235757abf9873de469498d8cf45f5bb42c215da79d59940e17fcb22dfc127\n```\nNode's blskeypair:：\n\n```\nplatonkey genblskeypair\nPrivateKey:  7747ec6876bbf8ca0934f05e45917b4213afc5814639355868bbf06d0b3e0f19\nPublicKey :  e5eb9915ed2b5fd52cf5ff760873a75a8562956e176968f3cbe5ea2b22e03a7b5efc07fdd5ad66d433b404cb880b560bed6295fa79f8fa649588be02231de2e70a782751dc28dbf516b7bb5d52053b5cdf985d8961a5baafa467e8dda55fe981\n```\n\n\u003e Note: The PublicKey generated by the 'genkeypair' command is the ***NodeID*** we needed, the PrivateKey is the corresponding ***node private key***, and the PublicKey generated by the 'genblskeypair' command is the node ***BLS PublicKey***, used in the staking and consensus process, PrivateKey is the ***Node BLS PrivateKey***, these two keypairs are common in different operating systems, that is, the public and private keys generated in Windows above, can be used in Ubuntu.\n\nstore the two private keys in files:\n\n```\nmkdir -p ./data\ntouch ./data/nodekey \necho \"{your-nodekey}\" \u003e ./data/nodekey\ntouch ./data/blskey\necho \"{your-blskey}\" \u003e ./data/blskey\n```\n\n### Generate a wallet\n\n```\nplaton --datadir ./data account new\nYour new account is locked with a password. Please give a password. Do not forget this password.\nPassphrase:\nRepeat passphrase:\nAddress: {lat1anp4tzmdggdrcf39qvshfq3glacjxcd5k60wg9}\n```\n\n\u003e Do remember the password\n\n### Connect to the PlatON network\n\n| Options | description |\n| :------------ | :------------ |\n| --identity | Custom node name |\n| --datadir  | Data directory for the databases and keystore |\n| --http.addr  | HTTP-RPC server listening interface (default: \"localhost\") |\n| --http.port  | HTTP-RPC server listening port (default: 6789) |\n| --http.api   | API's offered over the HTTP-RPC interface |\n| --http      | Enable the HTTP-RPC server |\n| --nodiscover | Disables the peer discovery mechanism (manual peer addition) |\n| --nodekey | P2P node key file |\n| --cbft.blskey | BLS key file |\n\nRun the following command to launch a PlatON node connecting to the PlatON's mainnet:\n\n```\nplaton --identity \"platon\" --datadir ./data --port {your-p2p-port} --http.addr 127.0.0.1 --http.port {your-rpc-port} --http.api \"platon,net,web3,admin,personal\" --http --nodiscover --nodekey ./data/nodekey --cbft.blskey ./data/blskey\n```\n\nOK, it seems that the chain is running correctly, we can check it as follow:\n\n```\nplaton attach http://127.0.0.1:6789\nWelcome to the PlatON JavaScript console!\n\ninstance: PlatONnetwork/platon/v0.7.3-unstable/linux-amd64/go1.18\nat block: 26 (Wed, 15 Dec 51802 20:22:44 CST)\n datadir: /home/develop/platon/data\n modules: admin:1.0 debug:1.0 miner:1.0 net:1.0 personal:1.0 platon:1.0 rpc:1.0 txgen:1.0 txpool:1.0 web3:1.0\n\n\u003e platon.blockNumber\n29\n```\n\nFor more information, please visit our [Docs](https://devdocs.platon.network/docs/en/).\n\n## Contributing to PlatON-Go\n\nAll of codes for PlatON-Go are open source and contributing are very welcome! Before beginning, please take a look at our contributing [guidelines](https://github.com/PlatONnetwork/PlatON-Go/blob/develop/.github/CONTRIBUTING.md). You can also open an issue by clicking [here](https://github.com/PlatONnetwork/PlatON-Go/issues/new/choose).\n\n## Support\nIf you have any questions or suggestions please contact us at support@platon.network.\n\n## License\nThe PlatON-Go library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.\n\nThe PlatON-Go binaries (i.e. all code inside of the cmd directory) is licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatonnetwork%2Fplaton-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplatonnetwork%2Fplaton-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatonnetwork%2Fplaton-go/lists"}