Nouveautés de QORel
Cette page liste ce que chaque version de QORel apporte. Elle s'adresse aux opérateurs qui hésitent à passer de Hermes, ou d'une version antérieure de QORel, et elle n'énonce que ce qu'une version fait, sous forme de comportements vérifiables. QORel est basé sur Hermes 1.13.3 (Informal Systems, Apache-2.0) ; chaque changement ci-dessous s'ajoute à cette base. Tout ce qui n'est pas listé se comporte comme dans Hermes.
0.1.0
Première version. Testnet uniquement. La page des versions contient les fichiers.
Innovations
- Signature hybride post-quantique pour QoreChain. Réglez
signing = 'qorechain-hybrid'sur une chaîne et QORel ajoute la signature ML-DSA-87 (/qorechain.pqc.v1.PQCHybridSignature) comme seule option d'extension critique de chaque transaction, puis signe le corps final avec secp256k1. Le message que la clé post-quantique signe correspond aux sign bytes de version 2, que les deux réseaux QoreChain vérifient. Desextension_optionsstatiques ne peuvent pas être combinées avec ce mode, et la configuration est refusée si elles le sont. - La signature standard est inchangée. Avec
signing = 'standard'(la valeur par défaut), le format de transaction est identique octet pour octet à celui de Hermes, pour Cosmos Hub, Osmosis et toute autre chaîne Cosmos SDK. - Le crate
qorel-signer. La primitive post-quantique (PqSigner, avecMlDsa87Signer), les règles de la chaîne (SignBytesFramer) et le signataire d'extension que le relayeur appelle (TxExtensionSigner) sont des interfaces séparées. La simulation du gas et le dimensionnement des lots passent par le même chemin, de sorte que les quelque 4,7 Ko supplémentaires et le gas de vérification sont toujours comptés. qorel keys adddérive la clé post-quantique. Sur une chaîne hybride, il dérive la clé ML-DSA-87 à partir de la même phrase mnémonique et du même compte avec la dérivation de portefeuille de QoreChain et ne stocke que sa graine de 32 octets, à côté de la clé, sous le nom<key name>.pqc. Rien de secret n'est affiché.qorel keys register-pqc. EnvoieMsgRegisterPQCKeyV2une seule fois, avec une preuve de possession sur les réseaux en v3.2.3 ou plus récent. Il est idempotent (rien n'est envoyé si la même clé est déjà enregistrée) et refuse d'envoyer lorsque le compte a déjà une clé différente.--no-proofn'existe que pour les réseaux antérieurs à la v3.2.3.qorel keys pqc-status. Indique si la clé est enregistrée, si elle correspond à la clé locale, si la possession a été prouvée, quels sign bytes la chaîne vérifie, etready_to_relay.- Vérification de sécurité avant envoi. Avant chaque transaction vers une chaîne hybride, QORel vérifie que la clé est chargée, enregistrée et identique à la clé locale, et que la version des sign bytes est connue. Avec
pqc.sign_bytes = 'auto', il lit la version depuis les enregistrements de mise à niveau appliqués de la chaîne, la relit chaque minute, et la relit après tout refus avec le codespacepqccode 21. En cas d'échec, rien n'est envoyé et aucun frais n'est dépensé ;health-checkindique la raison. - Prix du gas selon le marché des frais.
dynamic_gas_price.backend = 'cosmos-evm-feemarket'lit les frais de base de QoreChain, qui ont un plancher de 0,1 uqor par gas. - Détection des comportements malveillants sur les chaînes ibc-go v10. QORel lit l'en-tête dans la transaction
MsgUpdateClientparce qu'ibc-go v10 ne l'inclut plus dans les événementsupdate_client. Hermes 1.13 standard désactive la détection sur ces chaînes. - Les workers de paquets résistent à la limitation de débit. Les workers restent actifs tant qu'une tentative de relais ou de purge a échoué et réessaient à chaque intervalle de purge. Dans Hermes, un worker s'arrête aussi après
clear_interval x 5blocs sans nouvel événement IBC, même lorsque le dernier cycle de purge a échoué, de sorte qu'un paquet en attente à ce moment-là patientait jusqu'au paquet suivant sur le canal ou jusqu'à un redémarrage. - Fichiers de clés réservés au propriétaire. Hermes écrivait les fichiers de clés avec l'umask par défaut. QORel écrit
<key name>.jsonet<key name>.pqcavec le mode 0600. Les clés ajoutées par un ancien Hermes gardent leur ancien mode ; vérifiez-les avecls -l. - Un binaire
qorel. Un seul binaire,qorel, avec le jeu de commandes de Hermes plus les commandes de clés post-quantiques. Un binairehermesavec la même CLI est aussi construit à partir de l'arborescence des sources. - Des versions avec provenance. Archives pour Linux et macOS, paquets
.debet.rpmavec une unité systemd durcie, une formule Homebrew, et une image de conteneur multi-architecture signée avec cosign. Les fichiers de version sont accompagnés deSHA256SUMSet d'attestations de build. Voir Installation. - Un test devnet local. Le dépôt inclut
scripts/qorel-devnet/, qui construit localement un nœud QoreChain et une chaîne de test ibc-go v10 et exécute un test de bout en bout ICS-20 dans les deux sens : enregistrement des clés, création du client, de la connexion et du canal, transferts dans les deux sens, retour d'un jeton transféré, un paquet expiré purgé et remboursé, et un transfert envoyé par QORel lui-même.
Éprouvé sur le testnet
- Le premier canal IBC du testnet QoreChain,
transfer/channel-0surqorechain-dianaverschannel-600sur le testnet public de Cosmos Hub (identifiant de chaîneprovider), est relayé par QORel. Les clients sont07-tendermint-0et07-tendermint-466, les connexionsconnection-0etconnection-315. - Les transferts ont été testés dans les deux sens (1 QOR à l'aller, 0,1 ATOM au retour, 0,4 QOR renvoyés) et le remboursement automatique d'un transfert avec un délai d'expiration d'1 seconde, par un message de timeout. Les 13 transactions du relayeur sur
qorechain-dianaont réussi. - La vue en lecture du canal se trouve sur Pont d'actifs.
Pas dans cette version
- Le relais IBC v2. Il n'est pas encore implémenté dans QORel et constitue la prochaine phase.
- Le relais Ethereum (Eureka). Non commencé.
- Le relais sur le mainnet. Aucun canal IBC du mainnet n'est encore ouvert.
- Un build Windows.
- Le crate
qorel-signersur crates.io. La publication est bloquée ; le crate se trouve dans le dépôt àcrates/qorel-signer, utilisez donc une dépendance git.
Mise à niveau
Il n'existe aucune version antérieure de QORel. Pour passer de Hermes 1.13 à QORel 0.1.0 :
- Installez
qorelà côté dehermesou à sa place (Installation). - Conservez votre
config.toml. Les chaînes sanssigningrestent en signature standard et se comportent comme avant. - Renommez la commande dans vos fichiers de service de
hermesenqorel. Le dossier du magasin de clés (~/.hermes/keyspar défaut) est inchangé, ce qui explique pourquoi l'image de conteneur monte ses données dans/home/nonroot/.hermes. - Vérifiez les modes des fichiers de clés avec
ls -l; les nouvelles clés sont en 0600, les plus anciennes gardent leur mode.
Les notes de mise à niveau de Hermes en amont, dans le fichier UPGRADING.md du dépôt, s'appliquent à quiconque vient d'une version de Hermes antérieure à la 1.6.