cosmos-sdk
cosmos-sdk copied to clipboard
chain-id best practices
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
I think this should live in ICS @cwgoes
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.
I'd be happy to get some reviews from Cosmos folks for
in https://github.com/ChainAgnostic/CAIPs/pull/9
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 :)
@okwme Is further action required here?
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?
I don't know who is responsible for SDK documentation at the moment.
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.
Ref: #7280 for a chain-id standard for chains that support IBC
Thanks 🙏🙏🙏 everyone ☺️☺️☺️
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 umcosmos-hashprefixo em vez docosmosprefixo. 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
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 umcosmos-hashprefixo em vez docosmosprefixo. 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