코스모스, CometBFT를 만나다

Feb 02 2023
오늘 우리는 인터체인과 그 이상을 위한 상태 머신 복제 엔진인 CometBFT의 출시를 발표합니다! CometBFT는 Tendermint Core의 포크이자 후속 제품이며 Interchain Stack을 지원하는 공식 복제 엔진 역할을 할 것입니다. CometBFT의 장기 비전은 안정적이고 안전한 대규모 애플리케이션별 블록체인을 위한 복제 엔진의 기본 선택이 되는 것입니다.

오늘 우리는 인터체인과 그 이상을 위한 상태 머신 복제 엔진인 CometBFT의 출시를 발표합니다! CometBFT는 Tendermint Core 의 포크이자 후속 제품이며 Interchain Stack을 지원하는 공식 복제 엔진 역할을 할 것입니다 . CometBFT의 장기 비전은 안정적이고 안전한 대규모 애플리케이션별 블록체인을 위한 복제 엔진의 기본 선택이 되는 것입니다. 오늘 CometBFT로 블록을 커밋하십시오!

Interchain Foundation, Informal Systems, Cosmos SDK 팀 및 Cosmos 생태계의 수많은 다른 팀이 이번 출시를 준비하기 위해 함께 노력해 왔습니다. 이 게시물은 이번 출시와 관련된 가장 중요한 몇 가지 질문을 다룹니다. 우리는 CometBFT로 업그레이드하거나 가능한 한 원활하게 채택하기 위해 열심히 노력하고 있습니다. 우리는 배경 세부 정보, CometBFT 비전 및 목표, 이러한 노력의 배후에 있는 팀, 기술적 영향 측면에서 다음 단계를 다룰 것입니다.

왜 지금?

우리는 생태계 전반에 걸친 여러 가지 중요한 변화를 표시하기 위해 이 새로운 이름으로 대표 코스모스 합의 엔진을 개발하기로 결정했습니다.

기술적인 측면에서 인터체인은 지난 몇 년 동안 크게 발전했습니다. 우리는 IBC 고유의 다중 체인 세계에 살고 있습니다. ABCI 2.0은 모듈성, 통합 또는 엄격한 테스트와 같은 설계 또는 품질 보증 측면과 마찬가지로 Interchain Stack에서 누락된 중요한 부분입니다. 또한 Tendermint Core의 v0.35 및 v0.36 릴리스를 포기하면서 개발 방법에 대한 기술적 한계가 드러났습니다. 자세한 내용은 여기를 참조하십시오 .

2022년에 Interchain Stack을 유지 관리하는 조직은 위의 기술적 제한을 완화하기 위한 전략적 접근 방식을 시작했습니다. 이 접근 방식에는 Informal Systems의 Tendermint Core에 완전한 팀을 구성하고 전담하는 작업이 포함되었습니다. 또한 릴리스를 준비하면서 나머지 Interchain Stack(즉, Cosmos SDK, IBC 및 더 넓은 인터체인 빌딩 블록)과의 품질 및 통합을 우선시하기 시작했습니다.

관리 측면에서 우리는 Tendermint GitHub 조직이나 "Tendermint"에 대한 상표권을 소유하지 않습니다. All in Bits(AiB)가 소유자입니다. Tendermint Core 소프트웨어의 개발은 지난 3년 동안 All in Bits 외부에서 이루어졌습니다. 그러나 AiB의 상표 소유권은 상표 소송의 지속적인 위험을 초래했습니다. AiB와의 복잡한 계약 없이는 인터체인 스택의 가장 중요한 부분의 개발자 머리에 걸려 있는 이 위험을 완전히 완화하는 것이 불가능할 것입니다.

앞서 Twitter에서 언급한 바와 같이 AiB 는 일방적으로 Tendermint Core 저장소를 보관하기로 결정했습니다. 따라서 AiB가 권장하는 대로 개발 궤적을 계속하기 위한 방법은 Tendermint Core 저장소를 포크하는 것이었습니다. CometBFT는 사용자, 품질 및 통합에 중점을 둔 새로운 개발로 Tendermint Core가 마련한 기반 위에 구축될 것입니다.

이러한 기술 및 관리 문제에 따라 가장 중요한 변경 사항은 프로젝트의 장기 비전, 목표 및 관리에 있습니다. 이것은 이 논의의 다음 부분으로 우리를 인도합니다.

무엇 향후 계획?

코스모스와 인터체인 생태계의 헌신적인 청지기로서 인터체인 재단은 공공재 자금과 자산을 위한 신뢰할 수 있는 호스트 역할을 합니다. ICF는 처음부터 "Cosmos" 상표의 소유자였으며 더 넓은 커뮤니티의 최선의 이익을 위해 사용을 보호합니다. 마찬가지로 ICF는 "CometBFT" 이름을 상표로 등록하고 CometBFT GitHub 조직을 설립했으며 성장하는 인터체인의 최대 이익을 위해 장기적으로 두 가지 모두를 관리할 계획입니다. CometBFT는 오픈 소스 및 허가된 Apache2.0으로 유지됩니다. 우리는 이 소프트웨어의 성장과 개발에 기여하고 오픈 소스 가치를 홍보하기 위해 모든 이해 당사자를 초대합니다.

앞서 언급했듯이 CometBFT에 대한 장기적인 의무는 인터체인을 위한 복제 엔진의 기본 선택이 되는 것입니다. CosmosSDK 팀, IBC 팀, CometBFT 관리자 및 애플리케이션 수준과 공공재 모두에서 인터체인을 구성하는 수많은 엔지니어링 팀은 CometBFT를 팀이 새로운 기능을 실험하고 구축할 수 있는 장소로 만드는 공통된 비전을 공유합니다. 스택의 무결성과 견고성을 유지하면서 최적화를 반복하고 사용자에게 높은 수준의 유연성을 보장합니다. Interchain Stack의 기여자, 유효성 검사기 또는 노드 운영, 다른 생태계와의 통합 또는 신규 사용자로서 Cosmos 주변의 길을 찾는다면 이를 실현하는 데 큰 도움이 될 것입니다. 당사에 연락하는 방법은 아래의 "참조"를 참조하십시오.

CometBFT의 목표는 무엇입니까?

위와 이전에 설명한 것처럼 이것은 인터체인의 새로운 단계를 나타냅니다. 합의 엔진은 IBC 네이티브 세계에 특화된 빌딩 블록으로 진화하고 있습니다. 우리는 Cosmos SDK 팀 및 현재 사용자와 계속 긴밀히 협력하면서 ABCI 및 IBC를 기반으로 구축하는 애플리케이션 개발자의 성장하는 생태계에 대한 채택을 촉진하고자 합니다. CometBFT의 근본적인 장기 목표는 인터체인의 성장을 지원하는 데 중요한 역할을 하는 것입니다.

보다 구체적으로 CometBFT 목표는 다음과 같습니다.

  1. 강력한 사용자 중심 , 사용자의 요구 사항을 최우선으로 생각하는 명확하게 표현된 제품 전략. 이것은 CometBFT가 적절하고 유용성을 제공하도록 보장하기 위한 전략적 선택입니다.
  2. 모델 기반 테스트와 같은 고급 기술을 사용하여 구현을 엄격하게 지정하고 테스트하는 것을 목표로 품질 보증 및 정확성 보장을 개선합니다 . 우리는 이미 대규모 테스트 노력으로 보완된 기존 QA를 강화하기 위해 사양 및 공식 방법에 대한 전문 지식을 제공하고 있습니다.
  3. 모듈성 , 추상화의 올바른 경계에 초점을 맞추고 필요한 경우 시스템을 분리할 수 있도록 하여 시스템에 의존하는 프로젝트에서 단편적인 통합을 허용합니다. 우리는 CometBFT가 점점 더 라이브러리로 사용되도록 허용하고 계속 증가하는 사용 사례 배열을 지원하는 새로운 인터페이스를 제공하여 분기 및 조각화를 최소화하고자 합니다.
  4. 변화를 위한 건전한 플랫폼 역할을 하도록 시스템 아키텍처를 점진적으로 업데이트하고 전체 인터체인 스택에서 보다 원활한 프로젝트 조정을 통해 품질을 희생하지 않고 더 빠른 기능 롤아웃 .

CometBFT 뒤에 누가 있습니까?

CometBFT 출시는 여러 조직의 결정이었습니다. CometBFT는 수많은 Cosmos 이해 관계자와 협력하여 Informal Systems에서 관리합니다. 출시에는 Cosmos SDK, IBC, Osmosis, Cosmos Hub, Agoric, Axelar, Oasis, Penumbra, Celestia, Anoma, Skip, Umee, Confio, Nomic, Numia, Sei, Evmos와의 조정을 포함한 인터체인 전반의 여러 팀 간의 작업이 포함되었습니다. , Sommelier, Andromeda, Cronos 등이 있습니다.

Informal의 CometBFT 팀은 가장 재능 있고 열정적인 Cosmos 기여자로 구성됩니다. 우리는 다른 인터체인 팀의 공헌 멤버뿐만 아니라 핵심 팀 멤버를 소개하여 Twitter에서 후속 조치를 취할 것입니다. 지금은 핵심 팀이 수십 년의 경험을 가진 연구 엔지니어, 베테랑 DevOps 및 소프트웨어 엔지니어와 Cosmos에서 10년 이상의 경험을 가진 프로젝트, 제품 및 기술 리더로 구성되어 있다고 말하는 것으로 충분합니다.

즉각적인 다음 단계는 무엇입니까?

CometBFT 출시는 여전히 진행 중인 상당한 노력입니다. 다음은 알아야 할 몇 가지 중요한 사항입니다.

귀하의 작업이 CometBFT에 의존하는 경우 2주마다 목요일에 조직되는 커뮤니티 콜에 참여하는 것을 고려하십시오.https://groups.google.com/g/cometbft-community/. GitHub 리포지토리 외에도 커뮤니티 콜은 CometBFT 개발을 논의하는 중요한 포럼입니다. 개발자가 피드백을 수집하고, 질문에 답하고, 사용자로서 귀중한 지식을 다른 사용자와 교환할 수 있는 장소입니다.

애플리케이션이 Cosmos SDK에서 빌드되는 경우: 0.45, 0.46 및 0.47 라인에 대한 새 SDK 버전이 Cosmos SDK 팀에서 릴리스됩니다. 이 릴리스는 Interchain Stack 기여자와 프로젝트 간의 합의에 따라 Tendermint Core 0.34 대신 CometBFT v0.34를 사용합니다. 이 SDK 버전으로 업그레이드하는 것은 마이너 버전 변경이므로 조정된 업그레이드가 필요하지 않습니다. Cosmos SDK 변경 로그는 애플리케이션의 관련 변경 사항을 문서화합니다.

Tendermint Core 위에 직접 구축하는 경우: 관리자로서 Tendermint Core v0.34에서 CometBFT v0.34로 전환하는 것이 좋습니다. 첫 번째 릴리스를 중단하면 업그레이드 지침을 제공할 것입니다. 여기에서 Github 저장소를 주시하십시오.

Tendermint Core의 포크를 유지하는 경우: 가능한 한 빨리 CometBFT로 전환하는 것이 좋습니다. 기꺼이 이 과정을 도와드리겠습니다. 또한 포크를 유지 관리할 필요가 없도록 하기 위한 특정 요구 사항에 대한 피드백과 정보를 환영합니다(아래 "커뮤니티" 참조 참조).

참조

여기에서 Comet과 관련된 공식 링크 및 지침을 찾을 수 있습니다.

  • CometBFT 합의 엔진은 어디에서 찾을 수 있습니까?https://github.com/cometbft/cometbft/. 저장소에 별표를 표시하는 것을 잊지 마세요!
  • 지원을 찾는 방법? 개발자라면 지원을 받을 수 있는 가장 좋은 곳은 `#cometbft` 채널에 있는 Cosmos Network Discord 서버 입니다 .
  • 빠른 피드백과 커뮤니케이션을 가능하게 하고 이러한 전환기를 처리하기 위해 Telegram 채널을 도입했습니다. 여기에서 가입하세요:https://t.me/CometBFT
  • 설명서 링크:https://docs.cometbft.com/
  • 다음과 같이 프로젝트의 새 핸들입니다. GitHub 조직:https://github.com/cometbft/. 디스코드: 코스모스 네트워크 서버 에서 `#cometbft` 채널에 참여하세요. 기존 `#tendermint-core` 채널은 더 이상 사용되지 않습니다.
  • Twitter: 발표 및 업데이트는 @cometbft 및 @informalinc 에서 이루어집니다 .
  • 일반 정보: [email protected] .
  • 보안 또는 취약점: [email protected] .

CometBFT의 기반이 되는 합의 알고리즘은 무엇입니까?

CometBFT의 기반이 되는 합의 알고리즘은 현재 Tendermint Consensus를 기반으로 합니다(즉, 구현입니다) .

CometBFT는 Tendermint 합의 알고리즘에서 멀어질까요?

초기 릴리스에는 없습니다. 우리는 CometBFT를 기본 합의 알고리즘을 다른 알고리즘으로 쉽게 교체할 수 있는 구성 가능한 합의 라이브러리로 구축하는 것을 목표로 하지만 핵심 관리자가 구현한 알고리즘에 국한되지 않습니다.

또한 합의 알고리즘 또는 다른 곳( LINE , PeggyJV , SeiNetwork 또는 Celestia Org 의 포크 참조)을 변경하거나 최적화한 팀과 협력하여 다른 사용자가 기본 개발 라인에 필요한 수정 사항을 업스트림할 계획입니다.

인터체인에 동력을 공급하는 Tendermint Core의 여러 경쟁 포크가 있습니까?

모두 오픈 소스이므로 있을 수 있습니다. 그러나 정식 빌딩 블록은 CometBFT 위에 구축됩니다. Cosmos 체인은 CometBFT 위에 구축될 Cosmos SDK(@cosmossdk)로 구축됩니다. Cosmos SDK 개발은 평소와 같이 계속됩니다.

IBC 수준에서 라이브러리는 Tendermint 라이트 클라이언트를 계속 지원합니다. CometBFT에는 Tendermint 합의 알고리즘 구현이 포함되어 있으므로 Tendermint 라이트 클라이언트는 평소와 같이 CometBFT와 계속 작업할 것입니다.

모든 팀은 CometBFT를 포크하고 애플리케이션에서 복제 엔진을 교체할 수 있습니다. 그러나 중대한 변경이 필요한 경우 당사에 연락하는 것이 좋습니다(위의 "지원을 찾는 방법" 참조). 가능하면 불필요하거나 안전하지 않은 포크를 피하기 위해 귀하의 요구 사항을 고려하고 그에 따라 기술 로드맵을 조정할 것입니다.

이로 인해 체인이 포크됩니까?

확고한 "아니오". Tendermint Core v0.34 기반 시스템은 CometBFT v0.34로 업그레이드할 수 있습니다. 그리고 CometBFT v0.34 라인은 Tendermint Core v0.34와 계속 호환됩니다.

Tendermint Core 기반 네트워크에서 검증하는 경우 작업에 문제가 있습니까?

릴리스 변경 로그에서 주요 변경 사항을 신중하게 알리고 주요 변경 사항은 최소화합니다. Tendermint Core의 바이너리 이름은 변경되지만 대부분의 애플리케이션 에는 Tendermint Core가 컴파일된(CometBFT로 대체됨) 앱별 바이너리(예: `osmosisd` , `gaiad` )가 있습니다. 별도의 Tendermint Core 바이너리를 실행하지 않는 한 작업에 영향을 미치지 않습니다. 관련 변경 사항은 `TMHOME` 환경 변수의 이름이 `CMTHOME` 으로 변경된다는 것입니다 . `gaiad tendermint` 와 같은 하위 명령은 바이너리를 유지 관리하는 팀에 따라 적절한 시기에 이름이 변경될 수 있습니다. 이것은 또한 변경 로그에 명확하게 표시됩니다.


Tendermint-rs (
https://github.com/informalsystems/tendermint-rs/ ) 는 어떻게 되나요 ?

우리는 곧 이 프로젝트의 이름을 cometbft-rs로 바꾸고 개발을 계속할 것입니다.

tm-db 또는 tm-load-test는 어떻게 됩니까?

우리는 tm-db를 cometbft-db 로 분기하고 이름을 변경했으며 개발을 계속할 것입니다. 그 외에는 API가 손상되지 않았으며 다른 Go 모듈인 `github.com/cometbft/cometbft-db`를 제외하고 사용법은 동일합니다.

tm-load-test를 cmt-load-test 로 옮기고 이름을 바꾸고 개발을 계속할 것입니다. 참고: 위의 이름 중 일부는 여전히 유동적일 수 있습니다.

추신. 우주적 기쁨으로 CometBFT의 발사는 혜성 C/2022 E3(ZTF)가 ​​우리 지구에 가장 가까이 접근하는 것과 일치합니다 . 혜성의 밝기는 오늘 최고조에 달할 것이며 이를 관찰하는 사람들에게 잊을 수 없는 시각적 경험을 제공할 것입니다.