티스토리 뷰
Blockchain/Hyperledger Indy
[Hyperledger Indy Docs] Indy Node: 4. Pool Upgrade Guideline
miiingo 2020. 2. 19. 14:47반응형
이 글은 Hyperledger Indy의 공식 문서를 번역한 것입니다.
원본 사이트 : https://hyperledger-indy.readthedocs.io/projects/node/en/latest/pool-upgrade.html
pool(네트워크) 업그레이드에는 매우 흥미롭고 자동화 된 프로세스가 있습니다.
- POOL_UPGRADE 트랜잭션을 통해 수동 작업 없이 전체 pool(즉, pool의 각 노드)을 자동으로 업그레이드 할 수 있습니다.
- 업그레이드 결과, 각 Node는 지정된 버전에 있게 됩니다. 즉, 새로운 패키지(예: deb 패키지)가 설치됩니다.
- 또한 업그레이드 중에 마이그레이션 스크립트를 수행하여 버전 간 변경 사항을 처리할 수 있습니다.
Pool Upgrade Transaction(Pool 업그레이드 트랜잭션)
- Pool 업그레이드는 POOL_UPGRADE 트랜잭션을 통해 수행됩니다.
- txn은 pool의 각 노드에 대한 업그레이드 schedule(업그레이드 시간)을 정의합니다.
- TRUSTEE만 POOL_UPGRADE를 보낼 수 있습니다.
- 이것은 일반적인 트랜잭션(Config 원장에 기록되는 트랜잭션)이므로 합의(consensus)가 필요합니다.
- POOL_UPGRADE에는 두 가지 주요 모드인 forced 및 non-forced(기본값)가 있습니다.
- Non-forced 모드인 경우 POOL_UPGRADE 트랜잭션이 원장에 기록된 후에만 업그레이드됩니다. 즉, 합의(consensus)가 있습니다. Forced 업그레이드 스케줄은 POOL_UPGRADE 트랜잭션이 실제로 원장에 기록되는지 여부에 관계없이 각 노드를 업그레이드합니다. 즉, pool이 합의(consensus)를 잃어버린 경우에도 예약할 수 있습니다.
- Non-forced 모드에서는 각 노드의 업그레이드가 동시에 수행되지 않고 순차적으로 수행되어야합니다(pool이 계속 작동중인 상태에서 업그레이드 중에 합의에 도달할 수 있도록). Forced 모드에서는 전체 pool을 동시에 업그레이드 할 수 있습니다.
- 모든 변경 사항이 이전 버전과 호환된다는 가정 하에 일반적으로 non-forced 업그레이드를 사용해야합니다.
- 이전 버전과 호환되지 않는 변경 사항이 있는 경우 forced 업그레이드를 사용해야하며 모든 노드에서 동시에 발생해야합니다(아래 참조).
Node Upgrade Transaction(Node 업그레이드 트랜잭션)
- 각 노드는 NODE_UPGRADE 트랜잭션을 두 번씩 보냅니다.:
- in_progress 작업: 업그레이드(노드를 다시 시작하고 새로운 패키지를 적용하는 것)가 시작되기 직전에 업그레이드가 시작되었음을 기록합니다.
- success 또는 fail 작업: 노드 업그레이드 후 업그레이드 결과를 기록합니다.
- NODE_UPGRADE 트랜잭션은 공통 트랜잭션(config 원장에 기록됨)이므로 합의(consensus)가 필요합니다.
Node Control Tool(Node 제어 도구)
- 업그레이드는 node-control-tool에 의해 수행됩니다.
- node_control_tool.py를 참조하십시오.
- Ubuntu에서는 노드 서비스(indy-node) 외에 시스템 서비스(indy-node-control)로 설치됩니다.
- indy-node-control은 root 사용자로부터 실행됩니다.
- 노드 업그레이드 시간이 되면 node-control-tool로 메시지를 보냅니다.
- 그런 다음 node-control-tool은 다음을 수행합니다:
- indy-node 서비스 중지;
- indy-node 패키지 업그레이즈(Ubuntu에서 apt-get install);
- 노드 데이터 백업(원장, 등);
- 마이그레이션 스크립트 실행(migration_tool.py 참조);
- indy-node 서비스 시작;
- indy-node-control 서비스 재시작
- 어떤 이유로 업그레이드에 실패한 경우 node-control-tool은 업그레이드 전의 데이터(원장)를 백업에서 복원하고 코드의 버전을 되돌리려고 합니다.
Migrations(마이그레이션)
- 버전 간에 호환성을 유지해야하지만 일부 버전이 있을 수 있습니다(예: 원장 및 state 데이터 형식 변경, re-branding 등).
- 이러한 종류의 주요 변경 사항을 지원하고 데이터 마이그레이션 및/또는 일부 스크립트 실행에 필요한 단계를 수행하기 위해 마이그레이션 스크립트를 작성할 수 있습니다.
- 마이그레이션은 패키지 이름 아래의 data/migration 폴더로 이동해야합니다(Ubuntu에서는 data/migration/deb입니다).
- 마이그레이션 스크립트 작성 방법에 대한 자세한 내용은 다음 문서를 참조하십시오.
When to Run Forced Upgrades(강제 업그레이드 실행 시기)
- 원장 트랜잭션 형식의 변경은 트랜잭션 루트 해시의 변경을 유발합니다.
- State 트랜잭션 형식의 변경은 원장에 state의 재작성이 필요합니다(예: State 값에 추가된 새 필드).
- 호환성 및 버전 관리 지원이 없는 Requests/Replies/Messages 변경
반응형
'Blockchain > Hyperledger Indy' 카테고리의 다른 글
[Hyperledger Indy Docs] Indy Node: 6. Add Node to Existing Pool (0) | 2020.02.19 |
---|---|
[Hyperledger Indy Docs] Indy Node: 5. Create a Network and Start Nodes (0) | 2020.02.19 |
[Hyperledger Indy Docs] Indy Node: 3. Default AUTH MAP Rules (0) | 2020.02.19 |
[Hyperledger Indy Docs] Indy Node: 2. Requests (0) | 2020.02.19 |
[Hyperledger Indy Docs] Indy Node: 1. Transactions (0) | 2020.02.19 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 어서와 데이터는 처음이지
- 빅데이터 기초
- Blockchain
- Hyperledger Fabric v1.2
- 하이퍼레저 인디
- javascript
- 빅데이터 교육
- Private Data
- 블록체인
- 알고리즘
- docker
- Hyperledger Fabric v1.1
- 빅데이터
- 하이퍼레저 페브릭
- 암브로셔스
- DOCs
- 하이퍼레저 패브릭
- 블록 체인
- 문제풀이
- Hyperledger Fabric
- ubuntu
- ambrosus
- 빅데이터 강의
- 코테
- Hyperledger Indy
- 기초 of 기초 데이터 개념
- 코딜리티
- 코딩테스트
- codility
- 직딩잇템
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함