Chain Name System

Overview

Chain Name Service (CNS)

The CNS module is a new Cosmos SDK module that allows Cosmos addresses to purchase, sell, and administer chain names.

Why Cosmos Hub needs a CNS

For the Cosmos Hub to function as an interchain router, it needs to access a canonical list of chain names. For example, token holders on the Hub need a trusted way to determine that, e.g., IRIS tokens on the Hub are actually from the IRISnet mainnet. If the Hub decides to add services like DEXes onto the Hub, trusted chain names allow token holders to more quickly verify ticker symbols and provide liquidity to the right pools.

A CNS on the Hub will provide security to interchain transfers by registering chain names, this will allow proper token tracking for every token transferred onto cosmos hub and off the cosmos hub. The cosmos hub will then become the defacto hub with all other zones relying on the trusted setup on the hub to define valid tokens. This value proposition will contribute to the growth of the ATOM.

While the CNS can exist on another chain and function correctly, we think that the CNS has the most aligned incentives with the Cosmos Hub. By adopting this module, ATOM stakers will be securing a crucial component of the interchain and will move us further into the direction of a Hub-centric model of Cosmos.

You might also like...
A simple Kubernetes-native CI system for the Bhojpur.NET Platform.

Bhojpur Piro - Kubernetes-native CI A simple Kubernetes-native CI system applied by the Bhojpur.NET Platform. It knows no pipelines, just the jobs and

Zms - The Bhojpur ZMS is a software-as-a-service product applied in different risk management areas. It is a containment Zone Management System based on Bhojpur.NET Platform.

Bhojpur ZMS - Zone Management System The Bhojpur ZMS is a software-as-a-service product used as a Zone Management System based on Bhojpur.NET Platform

For Rollin.Games API Wallet system usage

Table of contents Get Started API Authentication Callback Integration Cryptocurrency Unit Conversion REST API Deposit Wallet API Create Deposit Addres

Desenvolvendo-Sistema-Planejamento-Financeiro-GoLang - Developing a Financial Planning System with Golang

dio-expert-session-finance Pré Desenvolvimento Vamos criar um projeto no Github

Go-archvariant - Go package for determining the maximum compatibility version of the current system

go-archvariant Go package for determining the maximum compatibility version of t

Asteroids written in Golang using raylib using an ECS system.

Asteroids written in Golang using Raylib using an ECS system.

Chain Name System

Chain Name Service (CNS) The CNS module is a new Cosmos SDK module that allows Cosmos addresses to purchase, sell, and administer chain names. Why Cos

Takes a full name and splits it into individual name parts

gonameparts gonameparts splits a human name into individual parts. This is useful when dealing with external data sources that provide names as a sing

Email-searcher - Given a domain name and real name, attempt to find an existing email for that user.

email-searcher Given a domain name and real name, attempt to find an existing email for that user. Using Run it with both the domain and name flags, l

The goal of Binance Smart Chain is to bring programmability and interoperability to Binance Chain

Binance Smart Chain The goal of Binance Smart Chain is to bring programmability

XT Smart Chain, a chain based on the go-ethereum fork

XT Smart Chain XT Smart Chain (XSC) is a decentralized, high-efficiency and ener

Berylbit PoW chain using Ethash, EPI-Burn and geth. The chain will be using bot congestion flashbot bundles through nodes

Berylbit PoW chain using Ethash, EPI-Burn and geth. The chain will be using bot congestion flashbot bundles through nodes. Soon, We will work towards

Go-chain - EVM-compatible chain secured by the Lachesis consensus algorithm

ICICB galaxy EVM-compatible chain secured by the Lachesis consensus algorithm. B

A tool to solve DNS pollution of GitHub website. Query the real IP address of domain names such as github.com, and refresh the domain name setting of the system hosts file.

githubDNS Target A tool to solve DNS pollution of GitHub website. Query the real IP address of domain names such as github.com, and refresh the domain

Green: a distribute key value system for optimize block chain data
Green: a distribute key value system for optimize block chain data

Introduce Green is a distribute key value system for optimize block chain data A

what the name says (made for
what the name says (made for "educational" purposes)

NOTES You will need to Download Golang - golang compiler Download MinGW - C compiler (Add this to your path.) You can safely ignore these errors below

Makes a VM, imaginative name, I know

mkvm Makes a virtual machine from a bunch of templates using cloud-init userdata to customize them. This is an experimental tool I made for testing th

gdn is a Go module to get domain name from SSL certificates given an IP address

Get Domain Name gdn is a Go module to get domain name from SSL certificates given an IP address Installation Instructions From Source gdn requires go1

Act is a task runner and supervisor with some great features like act name matching, subacts, etc. We use this in nosebit workspaces.

Act Act is a task runner and supervisor tool written in Go which aims to provide the following features: process supervision in a project level allow

Comments
  • Issues with proving two clients belong to same chain

    Issues with proving two clients belong to same chain

    Description

    Ref: #2 As one of the applications of CNS, we wanted to provide a balance query which identifies the chain from which the token was transferred. This is a wrapper around bank's GetBalance in order to make it easier for users to understand which token they have rather than looking at hash e.g.. 100ibc/C053D637CCA2A2BA030E2C5EE1B28A16F71CCB0E45E8BE52766DC1B241B77878 will be resolved as 100ibc/stake/testchain1

    Problem:

    Let's say there's C1 and C2. C1 is registered as part of CNS and mapped to a particular chain, but C2 was used for the transfer. We want to prove both C1 and C2 belong to the same chain and thereby resolve the token hash

    The plan was to compare client states of both C1 and C2 with custom fields zeroed out. In order to ensure that C2 is not from a chain which duplicated original chain's parameters, we're trying to compare the consensus states of C1 and C2. The problem is we have the consensus states at different heights which make it impossible to compare consenus states.

    Proposed Solutions:

    1. We store a primary client ID in CNS and resolve it accordingly by doing a query for consensus states Pros: This approach is straight forward and won't require any changes from ibc modules Cons: The main issue being this may not be suitable for all use-cases as this involve multiple queries This helps only wallets/explorers to resolve the ibc denom hashes as belonging to a particular chain

    2. Alternatively we can have a hook on cns side to register every client created to it's respective chain Id. Pros: This helps all users to be able to query their balances using cns, provided the chain is registered in cns Cons: For this we expect all the necessary implementation to be present in ibc module. We may also need to iterate over all the chain info registered to establish the link. This may also register in a significant increase in state size of cns module, though we want to encourage reuse of clients for transfers.

    Is there a preferred method on how we want to do this, or any practices suggested by ibc team on what's the best way to utilise ibc module in applications like cns?

    cc\ @fadeev @okwme @hxrts @cwgoes @AdityaSripal @colin-axner

    opened by sahith-narahari 7
  • Add RPC endpoints to spec

    Add RPC endpoints to spec

    Currently the spec makes no mention of RPC endpoints. Because we need them for relayer, wallet and statesync operation I think we should include them in the spec.

    opened by jackzampolin 0
  • Epic: CNS Module

    Epic: CNS Module

    Phase-0 Chain Directory

    By the end of Phase-0, we want to deliver a directory of chain names for Cosmos SDK chains that currently exist. For expediency, we plan on setting up a multisig that initially has the authority to modify information about blockchains on the CNS. After all existing major blockchains are recorded on the CNS and M-0 is completed the multisig will hand off these chain names one by one to trusted parties from the various sovereign Cosmos chain communities.

    • [x] Implementation Spec
    • [x] Types Definition - #7
    • [x] Keeper implementation - #8
    • [ ] Genesis State definition
    • [x] CLI - #13
    • [ ] Simulations
    Epic 
    opened by sahith-narahari 0
Owner
Tendermint
Bringing simplicity, security, and speed to the world's blockchains.
Tendermint
A Golang Client Library for building Cosmos SDK chain clients

Cosmos Client Lib in Go This is the start of ideas around how to implement the cosmos client libraries in a seperate repo How to instantiate and use t

Jack Zampolin 147 Jan 6, 2023
Ant Chain CAFECMDB SDK for Go

English | 简体中文 Ant Chain CAFECMDB SDK for Go Requirements It's necessary for you to make sure your system have installed Go environment which version

null 0 Dec 2, 2021
A Binance Chain vanity address generator written in golang

BNC Chain Go SDK The Binance Chain GO SDK provides a thin wrapper around the BNC Chain API for readonly endpoints, in addition to creating and submitt

null 181 Dec 31, 2022
Ant Chain COMMERCIALEXTERNAL SDK for Go

English | 简体中文 Ant Chain COMMERCIALEXTERNAL SDK for Go Requirements It's necessa

null 0 Dec 24, 2021
Account - Ant Chain ACCOUNT SDK for Go

English | 简体中文 Ant Chain ACCOUNT SDK for Go Requirements It's necessary for you

null 0 Jan 13, 2022
Go(lang) client library for Cachet (open source status page system).

cachet Go(lang) client library for Cachet (open source status page system). Features Full API support Components Incidents Metrics Subscribers Various

Andy Grunwald 91 Sep 27, 2022
Azure Data Lake Storage Account Share 9p File System

dlfs Azure storage account (data lake) v2 as a 9p file system. Fork of abfs. Written in Go. Created during the 2021 MS hackathon. Build Currently the

Sean Hinchee 5 Oct 15, 2021
School POC of an AES implementation in an API/Client system

poc_aes_implement School POC of an AES implementation in an API/Client system How to use : Start the api with : poc-aes -api start Client commands : p

Thryn 0 Nov 29, 2021
A command-line tool to pretty print your system's PATH environment variable.

Description A command-line tool to pretty print your system's PATH environment variable. The output paths are colorized if they have special associati

Marwan Hawari 6 Nov 9, 2022
The library parse the system netrc file for golang

gonetrc This is the library parse the system netrc file, support linux/macos/win

cnmade 1 Jul 8, 2022