사후: GRANDPA Equivocation 및 sysinfo 프로세스는 결국 Kusama 네트워크에 막대한 불이익을 초래합니다.
PolkaBase
2020-08-21 06:02
本文约1629字,阅读全文需要约7分钟
모험적인 Kusama 카나리아 네트워크는 한 달 전에 또 다른 작은 "비틀림"이 있었습니다. 네트워크 처벌, 노드 분리, 일련의 연습 후 Kusama는 저항(강건함)을 증가시킬 것입니다.

텍스트

뒤늦은 깨달음: GRANDPA Equivocation 및 sysinfo 프로세스는 결국 엄청난 Kusama 네트워크 페널티로 이어집니다.

이미지 설명

"코드의 여러 버그로 인해 노드가 Kusama 네트워크에서 철수하고 검증된 블록의 블록을 저장하는 데이터베이스가 손실되었습니다. 결과적으로 동일한 노드가 다시 시작할 때 이러한 블록을 이중 서명했습니다. 사용자에게 Kusama 의회 동의가 주어졌습니다. 이 문제로 인한 벌금은 보상됩니다.”

7월 31일 금요일, 런타임 v2019를 사용하는 두 개의 Kusama 유효성 검사기가 몇 분마다 충돌하기 시작하여 두 개의 명백한 오류를 제공하고 문제를 보고했습니다. 얼핏 보면 유효성 검사기의 키에 문제가 있는 것 같습니다. 영향을 받은 유효성 검사기가 프로세스에서 키를 변경하지 않았음을 서로 확인했기 때문에 이것이 원인이 아님이 나중에 밝혀졌습니다. 또한 이 문제는 Polkadot이 아닌 Kusama 네트워크에만 존재하는 것으로 보입니다.

조금 더 파고들자 팀은 문제가 GRANDPA 모호성으로 인해 발생한 것으로 보이며 원래 파일 설명자 유출로 인해 발생한 Kusama의 슬래시 이벤트로 이어져 노드가 충돌하는 것으로 나타났습니다. 이 누출은 노드가 GRANDPA 투표자(주어진 라운드에서 투표)의 상태를 디스크에 쓰지 못하게 하고, 이 데이터를 잃은 노드가 재시작 후 다시 투표하게 하여 이번에는 원래 검증하기로 선택한 것보다 더 많은 블록에 투표하게 합니다. . 이로 인해 GRANDPA 알고리즘이 모호한 알고리즘 상황에 직면하게 됩니다.

https://wiki.polkadot.network/

GRANDPA Equivocation: 검증자는 동일한 블록 시간에 다른 체인에서 두 개 이상의 의도 투표 정보에 서명합니다.

이 두 가지 이벤트의 조합으로 인해 v0.8.15(Kusama v2015)가 출시되고 네트워크가 업그레이드된 후 언젠가 검증인이 심하게 불이익을 받는 상황이 발생했습니다. 권한 검색은 런타임 모듈 수준에서 한동안 사용할 수 있었지만 클라이언트에서는 기본적으로 활성화되지 않았으며 이 버전에서는 GRANDPA 알고리즘이 서명되지 않은 외부에 대한 모호성을 보고할 수도 있습니다.https://github.com/

GRANDPA의 새로운 보고 기능:

이 정보로 무장한 팀의 주요 가설은 파일 설명자 유출로 인한 모호성이 실제로 초기에 발생하기 시작했지만 7월 v0.8.15 업그레이드 이후에만 보고되었다는 것입니다. 관련 팀의 관심을 끌었던 자체 노드 상태. 그럼에도 불구하고 Parity가 실행하는 노드의 로그를 조사한 결과 모호한 "Equivocation"이 이전에 발생한 적이 없었습니다(이는 터미널에 기록됨).

파일 설명자 유출의 근본 원인에 대한 추가 연구에서는 권한 검색과 메트릭 수집이라는 두 가지 주요 원인을 지적했습니다. DHT에서 데이터를 쿼리하기 위해 너무 많은 소켓을 사용하는 권한 검색(예: 다른 권한 IP 주소 검색). 시스템 메트릭 수집(예: CPU 및 메모리)의 경우 시스템의 모든 프로세스와 각 프로세스의 스레드에서 파일 설명자 캐시를 유지하는 sysinfo 크레이트에 의존합니다(데이터는 /proc에서 읽어서 얻음).

단기 솔루션은 기본적으로 권한 부여 검색을 비활성화하고 시스템 메트릭 수집을 중지하는 것입니다. 소켓 오버 커밋에 대한 해결 방법이 있는 경우 Authority Discovery 모듈은 향후 릴리스에서 다시 활성화됩니다.

새 버전을 출시하기 전에 Parity 팀은 권한 검색을 수동으로 비활성화할 것을 권장합니다. 또한 노드 충돌이 발생한 경우 유효성 검사기가 다시 시작하기 전에 지연(1-2분)을 도입하는 것이 좋습니다. 이렇게 하면 노드의 티켓이 디스크에 유지되지 않는 경우 노드가 GRANDPA에서 Equivocation을 가질 가능성이 줄어듭니다.

몇 가지 논의와 개발을 거쳐 Polkadot v0.8.22가 출시되었으며 위에 설명된 단기 수정 사항이 포함됩니다. 모든 유효성 검사기는 버전을 업그레이드하고 결과를 모니터링해야 합니다. Kusama Council은 버그로 인한 모든 슬래시를 복원했으며 이러한 정신에서 검증인 지명 손실보다 경제적 손실을 복원하는 것에 대한 새로운 논의가 있었습니다.

https://matrix.to/

개발을 따라잡기 위해 Kusama 커뮤니티에 참여하는 방법에는 여러 가지가 있습니다. Kusama 채널에서 토론에 참여하십시오.

https://wiki.polkadot.network/

번역 및 편집: Shawn PolkaBase

https://polkadot.network/

번역 및 편집: Shawn PolkaBase

원본 링크:https://polkadot.network

PolkaBase
作者文库