{"id":18857760,"url":"https://github.com/portalnetwork/ons","last_synced_at":"2026-02-07T06:30:17.320Z","repository":{"id":112797824,"uuid":"148989969","full_name":"PortalNetwork/ons","owner":"PortalNetwork","description":"🔍 Documents and implementations for the Ontology Name Service.","archived":false,"fork":false,"pushed_at":"2018-11-22T06:53:27.000Z","size":3549,"stargazers_count":1,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-30T19:39:16.116Z","etag":null,"topics":["blockchain","ons","ontology"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PortalNetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-16T11:42:30.000Z","updated_at":"2019-02-14T06:58:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"f5da398c-34db-4985-a40d-eff5f967d6fc","html_url":"https://github.com/PortalNetwork/ons","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PortalNetwork%2Fons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PortalNetwork%2Fons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PortalNetwork%2Fons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PortalNetwork%2Fons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PortalNetwork","download_url":"https://codeload.github.com/PortalNetwork/ons/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239799566,"owners_count":19699076,"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":["blockchain","ons","ontology"],"created_at":"2024-11-08T04:08:02.423Z","updated_at":"2026-02-07T06:30:17.252Z","avatar_url":"https://github.com/PortalNetwork.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Ontology Name Service](./assets/title.jpg)\n\n\u003e 📖🔍 Documents of the Ontology Name Service.\n\n# Overview\n\n## What is Ontology?\nOntology is a public chain which dedicated to letting projects of all shapes and sizes. The Ontology network combines a distributed identity system, distributed data exchange, distributed data collaboration, distributed procedure protocols, distributed communities, distributed attestation, and various industry-specific modules. Via integrating all the infrastructures together, Ontology becomes a trust network which is cross-chain, cross-system, cross-industry, cross-application, and cross-device.\n\n## 💡 What is BNS?\nBNS – or blockchain name system – is the protocol on the internet that turns human-comprehensible decentralized website names such as 'website.neo' or 'mywebsite.ont' into addresses understandable by decentralized network machines.\n\n## 📝 Description\n\nONS is the Ontology Name Service, a distributed, open, and extensible naming system based on the Ontology blockchain.\n\n## 📚 Documents\n\n#### Table of Contents\n- [Introduction](./docs/INTRODUCTION.md)\n- [Tutorial](./docs/TUTORIAL.md)\n\n## 📝 Ontology in Web3.0\nOntology plays an connecting and entry layer in Web3.0 services. It connects with Ontology wallet, ONT ID, blockchain server and decentralized resources.\n\n![web3](./assets/web3.png)\n\n## 🗂️ Ontology Technical Stack\nAlong down with the y-axis, the following picture shows the Web3 technical stacks of Ontology ecosystem. Each of the layers is based on the modules of the previous one and the fundamental base of all layers is the state layer which is Ontology protocol. The rapidly evolving development on each layer brings the infrastructure more mature, and that is crucial to give the robustness of Web3.\n![Technical Stack](./assets/stacks/main.jpg)\n\n### State Layer\nOntology protocol provides a robust trust network system to allow many business cases can be implemented on top of it. This layer is a crucial part for the Web3, because each of the layer stores related state information in this network, users can now own and control their identities and operations towards the decentralized web services.\n![State Layer](./assets/stacks/state.jpg)\n\n### Computation Layer\nThere are three systems that provide the functionalities allowing humans to instruct the state layer to do what rules are been made. Ontology core has native support some of the smart contract features, NEO-VM / WasmVM for compiling different smart contracts programmed by various dynamic languages.\n![Computation Layer](./assets/stacks/computation.jpg)\n\n### Component Layer\nThe component layer is built on top of the computation layer. The components are set of standardized smart contract templates or with specific patterns. Such as OEP-4 described what the standard token interface should have. The designs of a new type of digital value components and much more experimentation expands more business possibilities.\n![Component Layer](./assets/stacks/component.jpg)\n\n### Scalability / Transfer Layer\nThere are multiple scalability enhancement solutions on layer1 and layer2. The solutions allow the decentralized network to increase the transaction processing capacity. Ontology will take the sub-chains, side-chains, and storage sharding as the higher priority in researching and developing.\n![Transfer Layer](./assets/stacks/scalability.jpg)\n\n### Protocol Layer\nOntology Name Service contains three main components, registrar, registry, and resolver smart contract components, these contracts are in charge of the registering ownership of the domain, storing the ownership of the domain, and the mapping information for the domain. BNS protocol can facilitate the Ontology Name Service to enhance the usability, reduce the complexity, and keep the flexibility.\n![Protocol Layer](./assets/stacks/protocol.jpg)\n\n### User Control Layer\nThe main part of the user control layer is how users manage their accounts. If there is no wallet application supporting the blockchain protocol, the user will have to interact via the command line interface to manage their private keys, transactions, and any operations on-chain. The user experience of this layer has a great impact on the blockchain adoption.\n![User Control Layer](./assets/stacks/user_control_1.jpg)\n![User Control Layer](./assets/stacks/user_control_2.jpg)\n\n### Application Layer\nBy utilizing the technologies provided by different layers above, there comes out various real use cases and opportunities. If a blogger or any content creator wants to accept crypto assets as the payment, they can utilize the Ontology domain names governs by the smart contract for their receiving wallet address. For example, send any tokens on Ontology via simply typing 'yourfriend.ont' and that's it.\n![Application Layer](./assets/stacks/appplication.jpg)\n\n# Introduction\n\n## Install Ontology\n\nClone the source code and install dependency\n```\n$ go get github.com/ontio/ontology\n$ cd $GOPATH/src/github.com/ontio/ontology\n$ glide install\n```\n\nMake source code\n```\n$ make all\n```\n\n## Create wallet\n\n```\n./ontology account add -d\n```\n\nWill create an ontology wallet\n```\nUse default setting '-t ecdsa -b 256 -s SHA256withECDSA'\n\tsignature algorithm: ecdsa\n\tcurve: P-256\n\tsignature scheme: SHA256withECDSA\nPassword:\nRe-enter Password:\nIndex:2\nLabel:\nAddress:AbfNqEyvZJuNzguXTSP6sbioySZpsdYfeY\nPublic key:03ed07576c4d745edc6dd8938fc7cd24301523d6f95f71c4fc6b283c7184bffcfd\nSignature scheme:SHA256withECDSA\nCreate account successfully.\n```\n\n![wallet](./assets/wallet.png)\n\n## Start testnet\n```\n./ontology --networkid 2\n```\n\n![start](./assets/ontology.png)\n\n## Smart Contract\n\nUsing smartx\n- [https://smartx.ont.io/](https://smartx.ont.io/)\n\nSmart Contract Language\n- C#\n- Python\n- JavaScript (Coming soon)\n\n#### Choosing smartx language\n![language](./assets/language.png)\n\n#### Choosing a smartx template, using \"Domain\"\n![smartx-1](./assets/smartx-1.png)\n\n#### Source code\n![smartx-2](./assets/smartx-2.png)\n\n#### Compile smartx\n![smartx-3](./assets/smartx-3.png)\n\n## 📣 Contributing\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for how to help out.\n\n## 🗒 Licence\nSee [LICENSE](./LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fportalnetwork%2Fons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fportalnetwork%2Fons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fportalnetwork%2Fons/lists"}