주문 서비스 관리

이 항목에서는 설립자와 참가자가 주문 서비스를 관리하는 방법에 대한 정보를 제공합니다.

이 항목에서 다루는 콘텐츠 외에도 주문자 노드에 대한 여러 채널별 작업은 콘솔의 채널 페이지에서 수행할 수 있습니다. 다음을 참조하십시오.

주문 서비스란 무엇입니까?

Oracle Blockchain Platform은 Raft를 합의 유형으로 지원합니다.

Raft 프로토콜의 Hyperledger Fabric 구현에 대한 자세한 내용은 주문 서비스 - Raft를 참조하십시오.

오래된 Kafka 합의 유형을 사용하면 전체 네트워크가 최대 두 개의 주문자 노드를 가질 수 있으며 모든 채널에 가입해야합니다. 경우에 따라 오버로드될 수 있으며 스케일 아웃할 수 없습니다. Raft 합의 유형을 사용하면 네트워크는 임의의 수의 주문자 노드를 가질 수 있으며, 각 채널은 자체 주문자 노드 세트를 정의할 수 있습니다. 채널마다 다른 주문자 노드를 사용할 수 있으며 주문자 노드는 더 이상 병목이 되지 않습니다.

그러나 래프트 합의 유형은 제대로 구성하기가 복잡할 수 있습니다. 할 수 있거나 할 수없는 것에 대한 규칙이 있으며, 이러한 규칙이 채널을 따르지 않고 네트워크조차 작동하지 않을 수 있습니다. 다음 지침을 따르면 발생하는 문제를 줄일 수 있습니다.

대부분의 주문 서비스 노드(OSN) 작동 유지

Raft 합의 알고리즘을 사용하려면 대부분의 OSN(주문 서비스 노드)이 작동 중이어야 합니다. 그렇지 않으면 합의를 수행할 수 없습니다. 대부분이 50%보다 크다는 뜻이다. 예를 들어, OSN이 5개인 경우 OSN이 3개 이상 작동해야 하며, OSN이 6개인 경우 OSN이 4개 이상 작동해야 합니다.
  • 네트워크에서 작동하는 OSN이 50% 이하인 경우 네트워크 관리가 더 이상 작동하지 않습니다. 새 채널을 생성할 수 없고, 새 주문자 노드를 네트워크에 추가할 수 없으며, 주문자를 네트워크에서 제거할 수 없습니다.
  • 애플리케이션 채널에서 작업하는 OSN이 50% 이하인 경우 이 애플리케이션 채널에 트랜잭션을 제출할 수 없습니다. 질의는 여전히 올바르게 작동할 수 있지만, 새 조직 추가, 액세스 제어 목록 변경, 체인 코드 인스턴스화 또는 배치와 같은 관리 작업은 실패합니다.

네트워크 또는 응용 프로그램 채널에 새 OSN을 추가할 때는 주의해야 합니다. 소유자가 신뢰할 수 있고 OSN이 강력한지 확인합니다.

OSN 또는 조직을 제거할 때 OSN의 50% 이상이 작동 중인지 확인합니다. 예를 들어 각각 OSN이 3개인 조직이 2개 있는 경우 한 조직을 제거하면 제거 중 작동 중인 OSN의 50%만으로 해석됩니다. 불필요한 조직을 삭제하기 전에 나머지 조직에 OSN을 추가하여 작업 중인 OSN의 50%를 항상 초과하도록 합니다.

자주 주문자 추가 또는 제거 안함

새 OSN이 네트워크 또는 채널에 추가되거나 기존 OSN이 채널에서 제거될 때마다 현재 Raft OSN 클러스터가 잠시 불안정해집니다. 이 기간 동안에는 트랜잭션을 처리할 수 없으며 다음과 유사한 오류 메시지가 이러한 상태를 나타낼 수 있습니다.
UNKNOWN: Stream removed
SERVICE UNAVAILABLE
BAD REQUEST

이것은 몇 분 동안 지속될 수 있습니다. 채널에서 이전 래프트 리더 OSN을 제거한 경우 이 작업은 20분 동안 지속될 수 있습니다.

주문자를 자주 추가하거나 제거하지 않는지 확인합니다. 여러 주문자를 추가하거나 제거해야 하는 경우 다음 변경을 수행하기 전에 네트워크가 작동 상태로 돌아오도록 한 번에 하나씩 수행합니다.

새 주문자가 가능한 한 빨리 시작되는지 확인

네트워크에 새 주문자를 추가할 때 일반적으로 두 조직, 즉 새 주문자의 설립자와 소유자가 참여하게 됩니다. 양측 모두 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service의 지침을 따라야 합니다. 그렇지 않으면 설립자가 네트워크를 관리할 수 없습니다.

참가자 또는 스케일 아웃된 OSN에 가입하여 설립자 주문 서비스 제공

참가자 인스턴스를 프로비저닝하면 세 명의 주문자와 함께 생성됩니다. 주문자는 네트워크에 연결될 때까지 비활성 상태입니다. 설립자를 확장하면 새 주문자도 네트워크에 연결될 때까지 비활성 상태가 됩니다.

여러 주문자를 추가하거나 제거해야 하는 경우 다음 변경을 수행하기 전에 네트워크가 작동 상태로 돌아오도록 한 번에 하나씩 수행합니다. Raft 주문자 추가, 제거, 시작 및 중지에 대한 자세한 내용은 주문 서비스란?을 참조하십시오.

참가자 또는 스케일 아웃된 주문자에서 OSN 설정 익스포트

참여자 또는 스케일 아웃된 주문자를 네트워크에 연결하려면 해당 설정을 내보내고 설립자로 가져와야 합니다.

  1. 참가자 콘솔(또는 스케일 아웃된 주문자에 대한 설립자 콘솔)의 노드 탭에서 주문자 노드(또는 다중 노드가 있는 경우 첫 번째 주문자 노드)를 찾습니다. 이 노드에 대한 Action(작업) 메뉴를 선택하고 Export OSN Settings(OSN 설정 내보내기)를 선택합니다.

    그러면 설정이 포함된 JSON 파일이 생성되고 파일이 저장됩니다. 이 파일에는 조직의 인증서와 참여자 조직 관리자의 개인 키로 서명된 선택된 OSN(주문자 서비스 노드) 설정이 포함됩니다. 이 파일은 설립자 인스턴스의 관리자에게 보내야 합니다.

    이 OSN을 사용하는 채널에서 실행 중인 응용 프로그램에도 이 내보낸 TLS 인증서가 필요합니다. 애플리케이션 개발 전을 참조하십시오.

  2. 설립자 콘솔에서 Network(네트워크) 탭을 엽니다. Add OSN(OSN 추가)을 누릅니다. 참가자가 제공한 JSON 파일의 위치를 묻는 창이 열립니다. 파일을 업로드하려면 선택하고 추가를 누릅니다.

    참가자 조직 또는 새로 스케일 아웃된 주문자가 시스템 채널 목록의 주문자 조직 섹션에 추가됩니다.

설립자의 구성 설정 내보내기

참가자 또는 스케일 아웃된 주문자가 설립자에 추가되면 설립자 설정을 내보내고 참가자 또는 스케일 아웃된 주문자에게 가져와야 합니다.

  1. 설립자 콘솔에서 Network(네트워크) 탭을 엽니다. Export Network Config Block을 누릅니다.

    네트워크 구성 블록은 최신 시스템 채널 구성 블록을 포함합니다. 이를 저장하고 참가자 관리자에게 전송할 수 있습니다.

  2. 참가자 콘솔(또는 스케일 아웃된 주문자에 대한 설립자 콘솔)의 노드 탭에서 주문자 노드(또는 다중 노드가 있는 경우 첫 번째 주문자 노드)를 찾습니다. 이 노드에 대한 Action(작업) 메뉴를 선택하고 Import Network Config Block(네트워크 구성 블록 가져오기)을 선택합니다.

    설립자 인스턴스 관리자가 보낸 파일을 묻는 메시지가 표시됩니다.

  3. 참가자 콘솔에서 노드 탭을 새로 고칩니다. 주문자 노드 상태가 "다운"으로 나열되어야 합니다. [작업] 메뉴에서 시작을 선택합니다.

    시작된 각 주문자 노드는 설립자의 Raft 클러스터에 추가됩니다.

Scale Your Instance에 설명된 대로 주문자를 축소하여 새 OSN을 추가할 때마다 이러한 단계를 반복하여 새 OSN을 Raft 클러스터에 추가해야 합니다.

주:

단일 뱃치의 네트워크에 여러 OSN을 추가할 수 없습니다. 한 번에 하나의 OSN만 추가되었는지 확인합니다.

네트워크에 대한 주문 서비스 설정 편집

설립자 인스턴스에 대한 주문 서비스 설정을 업데이트할 수 있습니다.

주문 서비스 설정 편집에 대한 다음 중요 정보에 유의하십시오.
  • 업데이트된 설정은 새 채널을 생성할 때 사용되며 기존 채널에 적용되지 않습니다.
  • 채널에 대한 주문 서비스 설정 편집에 설명된 대로 개별 기존 채널에 대한 주문 서비스 설정을 별도로 업데이트할 수 있습니다.
  • 주문 서비스 설정을 변경하고 네트워크에 대해 실행 중인 응용 프로그램이 있는 경우 수정된 주문 서비스 설정을 사용하도록 해당 응용 프로그램을 수동으로 업데이트해야 합니다.
  • 일반적이지는 않지만 경우에 따라 일부 네트워크 참가자에게 다른 주문 서비스를 노출할 수 있습니다. 이 경우 업데이트된 네트워크 구성 블록을 내보내고 필요한 참가자가 수정된 설정을 가져옵니다. Founder's Ordering Service에 참여 또는 확장된 OSN 참여를 참조하십시오.
이 작업을 수행하려면 관리자여야 합니다.
  1. 설립자 콘솔로 이동하고 네트워크 탭을 선택합니다.
  2. 주문 서비스 설정 단추를 누릅니다.
    주문 서비스 설정 대화상자가 표시됩니다.
  3. 필요한 경우 설정을 업데이트합니다.
    필드 설명
    일괄 처리 시간 초과(밀리초) 뱃치 생성 전 시스템에서 대기해야 하는 시간(밀리초)을 지정합니다. 1과 3600000 사이의 숫자를 입력합니다.
    최대 메시지 수 뱃치에 포함할 최대 메시지 수를 지정합니다. 1과 4294967295 사이의 숫자를 입력합니다.
    절대 메시지 바이트 일괄 처리에서 직렬화된 메시지에 허용되는 최대 바이트 수를 지정합니다.

    이 숫자는 [선호 메시지 바이트] 필드에 입력한 값보다 커야 합니다.

    선호 메시지 바이트 일괄 처리에서 직렬화된 메시지에 허용되는 선호 바이트 수를 지정합니다. 이 크기보다 큰 메시지는 일괄 처리가 커지지만 일괄 처리 크기는 Absolute Message Bytes 필드에 지정한 바이트 수보다 작거나 같습니다.

    Oracle은 이 값을 1MB 이하로 설정할 것을 권장합니다.

    이 필드에 입력한 값은 절대 메시지 바이트 필드에 입력한 값보다 작아야 합니다.

    스냅샷 간격 크기 스냅샷이 생성되는 MB 수를 정의합니다.
  4. 업데이트을 누릅니다.
    업데이트된 설정이 저장됩니다.

주문 서비스 설정 보기

참가자의 Oracle Blockchain Platform 인스턴스로 임포트된 설립자의 주문 서비스 설정을 볼 수 있습니다.

설립자가 주문 서비스 설정을 변경하면 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service에 설명된 대로 새 설정을 참가자에게 포팅해야 합니다. 네트워크에 대해 실행 중인 응용 프로그램이 있는 경우 개정된 주문 서비스 설정을 사용하도록 해당 응용 프로그램을 수동으로 업데이트해야 합니다.
  1. 참가자의 콘솔로 이동하고 네트워크 탭을 선택합니다.
  2. 주문 서비스 설정을 누르고 보기를 누릅니다.
    [순서 설정] 대화상자가 표시됩니다.