QORel의 새로운 내용
이 페이지는 각 QORel 릴리스가 추가하는 내용을 나열합니다. Hermes에서, 또는 이전 QORel에서 옮겨 갈지 판단하는 운영자를 위한 것이며, 릴리스가 하는 일을 확인 가능한 동작으로만 서술합니다. QORel은 Hermes 1.13.3(Informal Systems, Apache-2.0)을 기반으로 하며, 아래의 모든 변경은 그 기반 위에 더해진 것입니다. 목록에 없는 것은 Hermes와 동일하게 동작합니다.
0.1.0
첫 릴리스. 테스트넷 전용입니다. 파일은 릴리스 페이지에 있습니다.
혁신
- QoreChain용 하이브리드 포스트 양자 서명. 체인에
signing = 'qorechain-hybrid'를 설정하면 QORel은 ML-DSA-87 서명(/qorechain.pqc.v1.PQCHybridSignature)을 각 트랜잭션의 유일한 critical 확장 옵션으로 덧붙인 다음, 최종 본문에 secp256k1로 서명합니다. 포스트 양자 키가 서명하는 메시지는 버전 2 sign bytes이며, 두 QoreChain 네트워크 모두 이를 검증합니다. 정적extension_options는 이 모드와 함께 쓸 수 없으며, 함께 있으면 설정이 거부됩니다. - 표준 서명은 그대로입니다.
signing = 'standard'(기본값)에서는 Cosmos Hub, Osmosis 및 그 밖의 모든 Cosmos SDK 체인에 대해 트랜잭션 형식이 Hermes와 바이트 단위로 동일합니다. qorel-signer크레이트. 포스트 양자 프리미티브(PqSigner,MlDsa87Signer포함), 체인의 규칙(SignBytesFramer), 릴레이어가 호출하는 확장 서명기(TxExtensionSigner)는 각각 별도의 인터페이스입니다. 가스 시뮬레이션과 배치 크기 계산도 같은 경로를 거치므로, 추가되는 약 4.7 KB와 검증 가스가 항상 반영됩니다.qorel keys add가 포스트 양자 키를 파생합니다. 하이브리드 체인에서는 같은 니모닉과 계정으로부터 QoreChain 지갑 파생 방식으로 ML-DSA-87 키를 파생하고, 32바이트 시드만 키 옆에<key name>.pqc로 저장합니다. 비밀 값은 출력되지 않습니다.qorel keys register-pqc.MsgRegisterPQCKeyV2를 한 번 전송하며, v3.2.3 이상의 네트워크에서는 소유 증명이 함께 들어갑니다. 멱등적이며(같은 키가 이미 등록되어 있으면 아무것도 보내지 않음), 계정에 이미 다른 키가 있으면 전송을 거부합니다.--no-proof는 v3.2.3보다 오래된 네트워크 전용으로만 존재합니다.qorel keys pqc-status. 키가 등록되어 있는지, 로컬 키와 일치하는지, 소유가 증명되었는지, 체인이 어떤 sign bytes를 검증하는지, 그리고ready_to_relay를 출력합니다.- 전송 전 안전 검사. 하이브리드 체인에 트랜잭션을 보내기 전에 QORel은 키가 로드되어 있고, 등록되어 있고, 로컬 키와 동일한지, 그리고 sign-bytes 버전을 알고 있는지 확인합니다.
pqc.sign_bytes = 'auto'에서는 체인의 적용된 업그레이드 기록에서 버전을 읽고, 1분마다 다시 읽으며, codespacepqc코드 21로 거부된 뒤에도 다시 읽습니다. 어느 하나라도 실패하면 아무것도 보내지 않고 수수료도 소모되지 않으며,health-check가 그 이유를 보고합니다. - 수수료 시장 가스 가격.
dynamic_gas_price.backend = 'cosmos-evm-feemarket'은 QoreChain의 기본 수수료를 읽으며, 그 최소값은 가스당 0.1 uqor입니다. - ibc-go v10 체인의 misbehaviour(비정상 행위) 탐지. ibc-go v10은 더 이상
update_client이벤트에 헤더를 포함하지 않으므로 QORel은MsgUpdateClient트랜잭션에서 헤더를 읽습니다. 기본 Hermes 1.13은 이런 체인에서 탐지를 비활성화합니다. - 패킷 워커가 속도 제한을 견딥니다. 릴레이나 클리어링 시도가 실패한 동안에도 워커는 계속 살아 있으며 매 클리어 간격마다 재시도합니다. Hermes에서는 마지막 클리어링 라운드가 실패했더라도 새 IBC 이벤트 없이
clear_interval x 5블록이 지나면 워커가 중지되었고, 그 시점에 대기 중이던 패킷은 채널의 다음 패킷이나 재시작을 기다려야 했습니다. - 소유자 전용 키 파일. Hermes는 기본 umask로 키 파일을 기록했습니다. QORel은
<key name>.json과<key name>.pqc를 모드 0600으로 기록합니다. 이전 Hermes로 추가한 키는 기존 모드를 유지하므로ls -l로 확인하세요. qorel바이너리. Hermes 명령 집합에 포스트 양자 키 명령을 더한 바이너리qorel하나입니다. 같은 CLI를 가진hermes바이너리도 소스 트리에서 함께 빌드됩니다.- 출처 증명이 있는 릴리스. Linux 및 macOS용 타르볼, 하드닝된 systemd 유닛이 포함된
.deb및.rpm패키지, Homebrew 포뮬러, cosign으로 서명된 멀티 아키텍처 컨테이너 이미지. 릴리스 파일에는SHA256SUMS와 빌드 증명이 함께 제공됩니다. 설치를 참고하세요. - 로컬 데브넷 테스트. 저장소에는
scripts/qorel-devnet/가 있으며, QoreChain 노드와 ibc-go v10 테스트 체인을 로컬에서 빌드하고 양방향 ICS-20 엔드 투 엔드 테스트를 실행합니다. 키 등록, 클라이언트·연결·채널 생성, 양방향 전송, 전송된 토큰의 반환, 타임아웃된 패킷의 클리어링과 환불, QORel이 직접 보낸 전송을 포함합니다.
테스트넷에서 검증됨
- QoreChain 테스트넷의 첫 IBC 채널인
qorechain-diana의transfer/channel-0과 Cosmos Hub 공개 테스트넷(체인 IDprovider)의channel-600은 QORel이 릴레이합니다. 클라이언트는07-tendermint-0과07-tendermint-466, 연결은connection-0과connection-315입니다. - 양방향 전송(1 QOR 송신, 0.1 ATOM 수신, 0.4 QOR 반환)과 타임아웃 1초 전송의 타임아웃 메시지를 통한 자동 환불을 테스트했습니다.
qorechain-diana에서의 릴레이어 트랜잭션 13건이 모두 성공했습니다. - 채널의 읽기 쪽 보기는 자산 브리징에 있습니다.
이번 릴리스에 없는 것
- IBC v2 릴레이. QORel에 아직 구현되어 있지 않으며 다음 단계입니다.
- Ethereum(Eureka) 릴레이. 시작하지 않았습니다.
- 메인넷 릴레이. 아직 열려 있는 메인넷 IBC 채널이 없습니다.
- Windows 빌드.
- crates.io의
qorel-signer크레이트. 게시가 막혀 있습니다. 크레이트는 저장소의crates/qorel-signer에 있으므로 git 의존성을 사용하세요.
업그레이드
이전 QORel 릴리스는 없습니다. Hermes 1.13에서 QORel 0.1.0으로 옮기는 방법:
hermes와 나란히, 또는 그 대신qorel을 설치합니다(설치).config.toml은 그대로 둡니다.signing이 없는 체인은 표준 서명을 유지하며 이전처럼 동작합니다.- 서비스 파일의 명령을
hermes에서qorel로 바꿉니다. 키 저장 폴더(기본값~/.hermes/keys)는 바뀌지 않으며, 그래서 컨테이너 이미지가 데이터를/home/nonroot/.hermes에 마운트합니다. ls -l로 키 파일 모드를 확인합니다. 새 키는 0600이고 이전 키는 기존 모드를 유지합니다.
저장소의 UPGRADING.md에 있는 Hermes 업스트림 업그레이드 노트는 1.6보다 오래된 Hermes 버전에서 오는 모든 사용자에게 적용됩니다.