3

최근에 Docker-compose를 사용하여 패브릭 네트워크를 배포했으며, 다운 된 피어를 시뮬레이트하려고했습니다.패브릭 네트워크 - 다운 된 피어가 네트워크에 다시 연결되면 어떻게됩니까?

  1. 네 피어 (고정 표시기 정지 명령을 통해 수행) 4 피어가 다운, 즉 패브릭 네트워크를
  2. 1 개 피어 (peer)를 실행 고정 표시기-작성을 사용하여 온라인 상태
  3. 호출 거래를 보낼 : 기본적으로이 일어나는 것이다 언젠가 (피어나 버린 피어를 제외하고) 피어를 질의하여 검증 된 루트 피어로.
  4. 다운 된 피어가 도커 시작으로 다시 가동됩니다. 쿼리 트랜잭션은 항상 켜져있는 피어에서 제대로 실행되지만 새로 깨어 난 피어에서는 실패합니다.

4 피어가 블록 체인을 동기화 한 이유는 무엇입니까?이를 보장하기위한 조치가 있습니까? 또는 불량 피어로 폐기됩니다.

+0

네 번째 노드가 네트워크에 다시 연결 한 후 _not_ 동기화하지 않아야하는 사용 사례는 생각할 수 없습니다. 어쩌면 그것은 버그일까요? – default

답변

1

이것은 PBFT의 예상되는 동작 때문일 수 있습니다 (사용 중이라고 가정). 2 층 + 1 복제본은 하게 진행하고, F 복제본이 약간 뒤쳐, 때때로 을 잡을됩니다

, issue 933에 설명한 것처럼 나는 당신이보고있는 것은 정상 PBFT 행동이라고 생각합니다.

다른 피어를 종료하면 처음에 종료하고 다시 시작한 컴퓨터가 에 완전히 참여하고 네트워크가 계속 진행된다는 것을 확인해야합니다 ( ). 네트워크가 진행 중이며 참여 노드 인 이 올바른 접두사를 공유하는 한 이므로 모두 훌륭합니다. f 복제본이 에 뒤쳐진 이유는 이들 f가 byzantine 역할을하고 의도적으로 천천히 진행할 수 있다는 것입니다 ( ). 올바른 복제본과 고의적으로 더 느린 비잔틴 ​​복제본의 차이를 알 수 없습니다. 따라서 우리는 마지막 fstragglers를 기다릴 수 없습니다. 그들은 뒤에 남겨두고 때때로 동기화합니다. 다른 복제본이 손상된 것으로 판명되면 올바른 straggler가 catch 될 때까지 네트워크가 진행을 멈추고 네트워크는 정상적으로 진행됩니다.

+0

즉, 이는 의도적 인 조치입니다. 당신이 말한 것처럼 비단틴 동료가 잠시 동안 오프라인이었던 느리고 진실한 사람들을 구분할 수 없다고 말했던 것처럼, 당신은 올바른 낙오자가 무엇인지 결정할 수 있습니다. P .: PBFT를 사용 중입니다. – virajkamat

0

Hyperledger Fabric v0.6에서는 동적으로 추가 피어를 지원하지 않습니다. HF v1.0에 대한 확신이 없습니다.