비트코인(Bitcoin) C++ 소스

By | 2025년 04월 01일

비트코인(Bitcoin)은 C++로 작성된 가장 대표적인 암호화폐이며, 그 오픈 소스 코드가 GitHub에 공개되어 있습니다.
구체적으로 Bitcoin Core의 소스 코드는 아래 링크에서 확인할 수 있습니다:

https://github.com/bitcoin/bitcoin

이외에도 다양한 암호화폐 프로젝트가 GitHub 등에서 오픈 소스로 제공되고 있으니, 관심 있는 다른 프로젝트들도 찾아보실 수 있습니다.

Bitcoin Core 통합/스테이징 트리
https://bitcoincore.org

즉시 사용 가능한 이진 버전의 Bitcoin Core 소프트웨어는 https://bitcoincore.org/en/download/에서 확인할 수 있습니다.

Bitcoin Core란 무엇인가?
Bitcoin Core는 블록과 거래를 다운로드하고 완전히 검증하기 위해 Bitcoin 피어 투 피어 네트워크에 연결됩니다. 또한 선택적으로 빌드할 수 있는 지갑과 그래픽 사용자 인터페이스(GUI)를 포함하고 있습니다.

Bitcoin Core에 대한 자세한 정보는 doc 폴더에서 확인할 수 있습니다.

라이선스
Bitcoin Core는 MIT 라이선스 조건 하에 배포됩니다. 자세한 내용은 COPYING 파일을 참조하거나 https://opensource.org/licenses/MIT에서 확인하세요.

개발 과정
마스터 브랜치는 정기적으로 빌드(자세한 빌드 방법은 doc/build-*.md 참조) 및 테스트되지만, 완전히 안정적이라고 보장되지는 않습니다. 공식적이고 안정적인 새로운 Bitcoin Core 릴리스 버전을 표시하기 위해 릴리스 브랜치에서 정기적으로 태그가 생성됩니다.

GUI 개발을 위해서는 https://github.com/bitcoin-core/gui 저장소가 전용으로 사용됩니다. 이 저장소의 마스터 브랜치는 모든 monotree 저장소에서 동일하며, 릴리스 브랜치와 태그는 존재하지 않으므로 개발 목적이 아니라면 해당 저장소를 포크하지 마세요.

기여 워크플로우는 CONTRIBUTING.md에 설명되어 있으며, 개발자를 위한 유용한 팁은 doc/developer-notes.md에서 확인할 수 있습니다.

테스트
테스트와 코드 리뷰는 개발 과정에서 병목 현상을 일으키며, 단기간 내에 리뷰하고 테스트할 수 있는 것보다 더 많은 풀 리퀘스트가 제출됩니다. 인내심을 가지고 다른 사람의 풀 리퀘스트를 테스트하는 데 도움을 주시기 바라며, 이 프로젝트는 보안상 중요한 만큼 작은 실수도 큰 비용을 초래할 수 있음을 기억하세요.

자동화 테스트
개발자들은 새로운 코드에 대해 단위 테스트를 작성하고, 기존 코드에 대한 새로운 단위 테스트를 제출할 것을 강력히 권장합니다. 단위 테스트는 빌드 시스템 생성 시 비활성화되지 않았다면, ctest 명령어로 컴파일 및 실행할 수 있습니다. 단위 테스트 실행 및 확장에 관한 자세한 내용은 /src/test/README.md에서 확인할 수 있습니다.

Python으로 작성된 회귀 및 통합 테스트도 있으며, 테스트 의존성이 설치된 경우 build/test/functional/test_runner.py 명령어(빌드 디렉토리를 build로 가정)로 실행할 수 있습니다.

CI(지속적 통합) 시스템은 모든 풀 리퀘스트가 Windows, Linux, macOS에서 빌드되고 단위 및 건전성 테스트가 자동으로 실행되도록 보장합니다.

수동 품질 보증(QA) 테스트
변경 사항은 해당 코드를 작성한 개발자가 아닌 다른 사람이 테스트해야 합니다. 이는 특히 대규모 또는 위험도가 높은 변경 사항에 대해 매우 중요합니다. 변경 사항 테스트가 간단하지 않은 경우, 풀 리퀘스트 설명에 테스트 계획을 추가하는 것이 좋습니다.

번역
번역 수정 사항과 새로운 번역은 Bitcoin Core의 Transifex 페이지에 제출할 수 있습니다.

번역은 주기적으로 Transifex에서 가져와 git 저장소에 병합됩니다. 자세한 작업 방식은 번역 프로세스를 참조하세요.

중요: Transifex에서 다음 pull 시 자동으로 덮어쓰게 되므로, GitHub 풀 리퀘스트로 번역 변경 사항을 제출하는 것은 허용되지 않습니다.

Category: C++