cosmos-sdk icon indicating copy to clipboard operation
cosmos-sdk copied to clipboard

chain-id best practices

Open okwme opened this issue 6 years ago • 12 comments

Summary

It might be good to make a recommendation somewhere for chain-id best practices to ensure future compatibility with the emerging chain id standards: https://github.com/ChainAgnostic/CAIPs/issues/5

I'm not sure where this rec should live, is there something like https://github.com/cosmos/cosmos-sdk/blob/v0.37.3/docs/modules/SPEC.md but for general app design? Should it live in the docs? In the glossary?

Problem Definition

The chainid registry has a prefix for cosmos chains that is followed by the chain id as a suffix. They enforce a chain id with the case-sensitive pattern [-a-zA-Z0-9]{3,47}. If it does not follow this pattern they hash the chain-id and include a cosmos-hash prefix instead of the cosmos prefix. Apparently out of all cosmos chains currently live none of them violate their requirements (which is great!). In order to help maintain the human readable version of their standard it would be good to recommend (or even enforce to a certain degree) chain id formats that follow their recommendations.

Proposal

One or both of the following:

  • List this chain id format under best practices somewhere in the documentation.
  • Enforce the chain id to follow this standard within the genesis file and/or within the command line. Alternatively it could simply notify the user that their id does not comply and ask if they are sure they want to use it anyway.

For Admin Use

  • [ ] Not duplicate issue
  • [ ] Appropriate labels applied
  • [ ] Appropriate contributors tagged
  • [ ] Contributor assigned/self-assigned

okwme avatar Dec 04 '19 12:12 okwme

I think this should live in ICS @cwgoes

fedekunze avatar Dec 04 '19 13:12 fedekunze

Should it? Chain ID standardisation is a pretty orthogonal question, in my opinion. A registry might interact with application-layer protocols on top of IBC, though.

cwgoes avatar Dec 04 '19 13:12 cwgoes

I'd be happy to get some reviews from Cosmos folks for

in https://github.com/ChainAgnostic/CAIPs/pull/9

webmaster128 avatar Dec 05 '19 15:12 webmaster128

Hi Guys, The specification has been merged! So excited :) https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-5.md We are going to list cosmos chainIds in the Universal Chain Registry now :)

romeo4934 avatar Jan 20 '20 07:01 romeo4934

@okwme Is further action required here?

cwgoes avatar Apr 21 '20 12:04 cwgoes

I think the proposal was one or both of the following:

  • List this chain id format under best practices somewhere in the documentation.
  • Enforce the chain id to follow this standard within the genesis file and/or within the command line. Alternatively it could simply notify the user that their id does not comply and ask if they are sure they want to use it anyway. I'm not sure if either were ever implemented though. @gamarin2 do you know wrt the docs? @fedekunze @alessio do you know wrt the SDK?

okwme avatar Apr 21 '20 17:04 okwme

I don't know who is responsible for SDK documentation at the moment.

cwgoes avatar Apr 21 '20 18:04 cwgoes

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Jul 05 '20 00:07 github-actions[bot]

Ref: #7280 for a chain-id standard for chains that support IBC

fedekunze avatar Sep 11 '20 19:09 fedekunze

Thanks 🙏🙏🙏 everyone ☺️☺️☺️

siwa8111 avatar Jul 06 '23 10:07 siwa8111

Resumo

Pode ser bom fazer uma recomendação em algum lugar sobre as melhores práticas de identificação de cadeia para garantir compatibilidade futura com os padrões emergentes de identificação de cadeia: ChainAgnostic/CAIPs#5

Não tenho certeza de onde esta recomendação deveria ficar. Existe algo como https://github.com/cosmos/cosmos-sdk/blob/v0.37.3/docs/modules/SPEC.md , mas para design geral de aplicativos? Deveria estar nos documentos? No glossário?

Definição de problema

O registro chainid tem um prefixo para cadeias cosmos que é seguido pelo id da cadeia como sufixo. Eles impõem um ID de cadeia com o padrão que diferencia maiúsculas de minúsculas [-a-zA-Z0-9]{3,47}. Se não seguir esse padrão, eles fazem o hash do ID da cadeia e incluem um cosmos-hashprefixo em vez do cosmosprefixo. Aparentemente, de todas as cadeias do cosmos atualmente existentes, nenhuma delas viola seus requisitos (o que é ótimo!). Para ajudar a manter a versão legível de seu padrão, seria bom recomendar (ou até mesmo impor até certo ponto) formatos de identificação de cadeia que sigam suas recomendações.

Proposta

Um ou ambos os seguintes:

  • Liste esse formato de identificação de cadeia de acordo com as práticas recomendadas em algum lugar da documentação.
  • Faça com que o ID da cadeia siga este padrão no arquivo genesis e/ou na linha de comando. Alternativamente, ele poderia simplesmente notificar o usuário de que seu ID não está em conformidade e perguntar se ele tem certeza de que deseja usá-lo de qualquer maneira.

Para uso administrativo

  • [ ] Problema não duplicado
  • [ ] Rótulos apropriados aplicados
  • [ ] Colaboradores apropriados marcados
  • [ ] Colaborador atribuído/autoatribuído

Cristianoluizz avatar Feb 14 '24 04:02 Cristianoluizz

Resumo

Pode ser bom fazer uma recomendação em algum lugar sobre as melhores práticas de identificação de cadeia para garantir compatibilidade futura com os padrões emergentes de identificação de cadeia: ChainAgnostic/CAIPs#5

Não tenho certeza de onde esta recomendação deveria ficar. Existe algo como https://github.com/cosmos/cosmos-sdk/blob/v0.37.3/docs/modules/SPEC.md , mas para design geral de aplicativos? Deveria estar nos documentos? No glossário?

Definição de problema

O registro chainid tem um prefixo para cadeias cosmos que é seguido pelo id da cadeia como sufixo. Eles impõem um ID de cadeia com o padrão que diferencia maiúsculas de minúsculas [-a-zA-Z0-9]{3,47}. Se não seguir esse padrão, eles fazem o hash do ID da cadeia e incluem um cosmos-hashprefixo em vez do cosmosprefixo. Aparentemente, de todas as cadeias do cosmos atualmente existentes, nenhuma delas viola seus requisitos (o que é ótimo!). Para ajudar a manter a versão legível de seu padrão, seria bom recomendar (ou até mesmo impor até certo ponto) formatos de identificação de cadeia que sigam suas recomendações.

Proposta

Um ou ambos os seguintes:

  • Liste esse formato de identificação de cadeia de acordo com as práticas recomendadas em algum lugar da documentação.
  • Faça com que o ID da cadeia siga este padrão no arquivo genesis e/ou na linha de comando. Alternativamente, ele poderia simplesmente notificar o usuário de que seu ID não está em conformidade e perguntar se ele tem certeza de que deseja usá-lo de qualquer maneira.

Para uso administrativo

  • [ ] Problema não duplicado
  • [ ] Rótulos apropriados aplicados
  • [ ] Colaboradores apropriados marcados
  • [ ] Colaborador atribuído/autoatribuído

Cristianoluizz avatar Feb 14 '24 04:02 Cristianoluizz