{"id":41256526,"url":"https://github.com/0chain/0dns","last_synced_at":"2026-01-23T01:51:53.347Z","repository":{"id":38842775,"uuid":"285117539","full_name":"0chain/0dns","owner":"0chain","description":"A DNS service for 0Chain clients","archived":false,"fork":false,"pushed_at":"2025-11-13T19:57:42.000Z","size":224,"stargazers_count":5,"open_issues_count":6,"forks_count":10,"subscribers_count":7,"default_branch":"staging","last_synced_at":"2025-11-13T21:21:15.731Z","etag":null,"topics":["blockchain","dns","magic-block","miners","sharder"],"latest_commit_sha":null,"homepage":"","language":"Go","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/0chain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-08-04T22:44:46.000Z","updated_at":"2024-07-06T04:45:41.000Z","dependencies_parsed_at":"2023-12-06T19:26:03.900Z","dependency_job_id":"9270fcf7-c738-459b-bf18-ca1628709215","html_url":"https://github.com/0chain/0dns","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/0chain/0dns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2F0dns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2F0dns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2F0dns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2F0dns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0chain","download_url":"https://codeload.github.com/0chain/0dns/tar.gz/refs/heads/staging","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2F0dns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28677714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"ssl_error","status_checked_at":"2026-01-23T01:00:19.529Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","dns","magic-block","miners","sharder"],"created_at":"2026-01-23T01:51:53.053Z","updated_at":"2026-01-23T01:51:53.309Z","avatar_url":"https://github.com/0chain.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 0dns - A DNS service for Züs clients\n\nThis service is responsible for connecting to the network and fetching all the magic blocks from the network which are saved in the DB.\nThere is a [Network API](#network-api) which can be used to get latest set of miners and sharders for the network using the magic block.\n\n## Table of Contents\n- [Züs Overview](#züs-overview)\n- [Setup](#setup)\n- [Buildding and starting the node](#building-and-starting-the-node)\n- [Point to another blockchain](#point-to-another-blockchain)\n- [Exposed APIs](#exposed-apis)\n- [Config changes](#config-changes)\n- [Cleanup](#cleanup)\n- [Network issue](#network-issue)\n\n## Züs Overview\n[Züs](https://zus.network/) is a high-performance cloud on a fast blockchain offering privacy and configurable uptime. It is an alternative to traditional cloud S3 and has shown better performance on a test network due to its parallel data architecture. The technology uses erasure code to distribute the data between data and parity servers. Züs storage is configurable to provide flexibility for IT managers to design for desired security and uptime, and can design a hybrid or a multi-cloud architecture with a few clicks using [Blimp's](https://blimp.software/) workflow, and can change redundancy and providers on the fly.\n\nFor instance, the user can start with 10 data and 5 parity providers and select where they are located globally, and later decide to add a provider on-the-fly to increase resilience, performance, or switch to a lower cost provider.\n\nUsers can also add their own servers to the network to operate in a hybrid cloud architecture. Such flexibility allows the user to improve their regulatory, content distribution, and security requirements with a true multi-cloud architecture. Users can also construct a private cloud with all of their own servers rented across the globe to have a better content distribution, highly available network, higher performance, and lower cost.\n\n[The QoS protocol](https://medium.com/0chain/qos-protocol-weekly-debrief-april-12-2023-44524924381f) is time-based where the blockchain challenges a provider on a file that the provider must respond within a certain time based on its size to pass. This forces the provider to have a good server and data center performance to earn rewards and income.\n\nThe [privacy protocol](https://zus.network/build) from Züs is unique where a user can easily share their encrypted data with their business partners, friends, and family through a proxy key sharing protocol, where the key is given to the providers, and they re-encrypt the data using the proxy key so that only the recipient can decrypt it with their private key.\n\nZüs has ecosystem apps to encourage traditional storage consumption such as [Blimp](https://blimp.software/), a S3 server and cloud migration platform, and [Vult](https://vult.network/), a personal cloud app to store encrypted data and share privately with friends and family, and [Chalk](https://chalk.software/), a high-performance story-telling storage solution for NFT artists.\n\nOther apps are [Bolt](https://bolt.holdings/), a wallet that is very secure with air-gapped 2FA split-key protocol to prevent hacks from compromising your digital assets, and it enables you to stake and earn from the storage providers; [Atlus](https://atlus.cloud/), a blockchain explorer and [Chimney](https://demo.chimney.software/), which allows anyone to join the network and earn using their server or by just renting one, with no prior knowledge required.\n\n## Setup\n\nClone the repo and run the following command inside the cloned directory\n\n```\n./docker.local/bin/init.sh\n```\n\n## Building and Starting the Node\n\nIf there is new code, do a git pull and run the following command\n\n```\n./docker.local/bin/build.sh\n```\n\nRun the container using\n\n```\n./docker.local/bin/start.sh\n```\n\n## Point to another blockchain\n\nYou can point the server to any instance of 0chain blockchain you like, Just go to config (docker.local/config) and update the magic_block.json.\n\nBy default they are pointing to local network with 4 miners and 1 sharder\n\nYou have to get the magic block from the chain you want to connect and update the `magic_block.json` file.\n\nIt will use that file to extract miners and sharders value and use that for further operations.\n\n## Exposed APIs\n\n0dns exposes:\n\n### Network API\n\n```\n{BASEURL}/network\n```\n\nThis API can be used to fetch the latest set of miners and sharder to connect.\nGoSDK will also uses this API to fetch miner/sharders value on runtime.\n\nDetails: https://0chain.net/page-documentation.html#tag/BlockWorker/paths/~1network/get\n\n### Magic Block API\n\n```\n{BASEURL}/magic_block\n```\n\nThis API can be used to fetch the latest magic block data from network.\n\nDetails: https://0chain.net/page-documentation.html#tag/BlockWorker/paths/~1magic_block/get\n\n## Config Changes\n\nYou can do other config changes as well in 0dns.yaml file itself, Like\n\n- Mongo DB connection URL, DB name and pool size\n\n```\nmongo:\n  url: mongodb://mongodb:27017\n  db_name: block-recorder\n  pool_size: 2\n```\n\n- Server port\n\n```\nport: 9091\n```\n\n- Logging info level\n\n```\nlogging:\n  level: \"info\"\n  console: false # printing log to console is only supported in development mode\n```\n\n- Worker related config\n\n```\nworker:\n  magic_block_worker: 5 # in seconds, Frequency to update magic block\n```\n\n## Cleanup\n\nGet rid of old data when the blockchain is restarted or if you point to a different network:\n\n```\n./docker.local/bin/clean.sh\n```\n\n## Network issue\n\nIf there is no test network, run the following command\n\n```\ndocker network create --driver=bridge --subnet=198.18.0.0/15 --gateway=198.18.0.255 testnet0\n```\n\n## Troubleshooting\n\n1. When running locally, if `http://localhost:9091/network` is returning below. Some commands might fail.\n\n```\n{\n  \"miners\": [\n    \"https://198.18.0.71/\",\n    \"https://198.18.0.72/\",\n    \"https://198.18.0.74/\",\n    \"https://198.18.0.73/\"\n  ],\n  \"sharders\": [\n    \"https://198.18.0.81/\"\n  ]\n}\n```\n\nTo fix the miner and sharder URLs so it works locally, update `docker.local/config/0dns.yaml` to disable both `use_https` and `use_path` (set to `false`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0chain%2F0dns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0chain%2F0dns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0chain%2F0dns/lists"}