ZYCORD 문서
한국어
Zycord 소스 코드

소스 코드

MIT 라이선스로 공개된 저장소 하나에 노드, 지갑, 커맨드 라인, 파라미터 세트, 그리고 프로토콜을 정의하는 골든 벡터가 모두 들어 있습니다. 네트워크가 돌아가는 데 필요한 모든 것이 여기 있습니다.

이 사이트의 어떤 것도 누구에게 묻지 않고 스스로 확인할 수 있는 것보다 값지지 않으며, 그 확인이 시작되는 곳이 여기입니다. 익명의 저자는 평판을 내밀 수 없습니다. 대신 내놓는 것은 여러분이 읽고, 빌드하고, 건네받은 바이너리와 대조해 볼 수 있는 소스 트리입니다.

클론하기#

git clone https://gitlab.com/zycord-group/zycord-node.git
cd zycord-node

아니면 먼저 브라우저에서 읽어 보세요: gitlab.com/zycord-group/zycord-node.

저장소는 이것 하나뿐입니다

이 프로젝트의 공식 위치는 — 여기를 포함해서 — 공지 스레드의 서명된 증명문에 프로젝트 키 E724 39CE DD85 11F9 D607 550B 87FD 60D5 EB4A 0B29로 고정되어 있습니다. 그 밖의 어디에 올라와 있는 트리든 사본입니다. 정직할 수도, 오래되었을 수도, 적대적일 수도 있으며, 이 페이지로는 어느 쪽인지 알 수 없습니다. 미러를 신뢰하기 전에 서명된 목록을 확인하세요. 그리고 해시를 직접 검증한 태그에서 빌드하세요.

무엇이 들어 있나#

디렉터리담고 있는 것
spec/프로토콜. 파라미터 세트, 골든 벡터, 그리고 미리 배포된 라이브러리 이미지. 벡터를 통과하는 구현은 포크가 아니라 동등한 참여자입니다.
core/합의에 결정적인 코드, 표준 라이브러리만 사용: 셀(cell) 모델, 상태 없는 유효성, 폴드(fold), 인증서(certificate)에 맞게 개조한 EVM, 그리고 빌드 태그 뒤의 RandomX.
node/그 코어를 둘러싼 노드 — 스토리지, 멤풀, 마이너, 피어 계층, 동기화, 읽기 전용 RPC, Stratum.
wallet/키 관리와 인증서(certificate) 빌더. 참조 구현이지 합의가 아닙니다.
cmd/zycordd는 노드, zcd는 커맨드 라인과 지갑입니다.
sim/시뮬레이터와 퍼즈 하네스, 진짜 구현에 맞서 퍼징되는 의도적으로 단순한 두 번째 폴드(fold), 그리고 실제 노드를 실제 소켓 위에서 돌리는 카오스 소크 테스트.
contracts/참조 컨트랙트, Solidity로 작성.
packaging/설치 스크립트와 플랫폼별 패키지. 실행하기 전에 읽어 볼 수 있습니다.
docs/아키텍처, 프로토콜 레퍼런스, 운영 안내서, 백서.

프로토콜은 곧 벡터#

이 트리의 Go 코드는 하나의 참조 구현이며, 의도적으로 그 정의가 아닙니다. 네트워크를 정의하는 것은 파라미터 세트와 골든 벡터입니다. 모든 폴드(fold)·블록·유효성 규칙이 (이전 상태, 블록) → (이후 상태, 수수료) 사례로, 긍정과 부정 양쪽 모두 담겨 있습니다. 원하는 언어로 직접 노드를 작성하세요 — 말뭉치를 통과한다면 그것은 동등한 참여자이고, 이 구현이 그 위에 설 자리는 없습니다.

활성화 높이도 같은 곳에 있습니다. h1_bond와 h1_vm은 릴리스가 아니라 제네시스 블록에서 동결된 파라미터입니다. 머신은 모든 바이너리에 컴파일되어 들어가 있고 자기 높이 아래에서는 거부되므로, 에라(Era)는 체인이 어떤 숫자에 도달했기 때문에 오는 것이지 운영자에게 업그레이드를 요청했기 때문에 오는 것이 결코 아닙니다.

빌드하기#

make build           # no cgo, reproducible, development engine only
make build-randomx   # the network binary: mainnet and the public testnet

네트워크에 참여할 수 있는 것은 RandomX 빌드뿐입니다. 기본 빌드는 바이트 단위로 재현 가능하며 로컬 devnet을 돌립니다. 두 빌드는 의도적으로 서로 다른 파일을 만들기 때문에, mainnet과 통신할 수 없는 바이너리가 통신할 수 있는 바이너리로 오인되는 일이 없습니다. Go 툴체인은 go1.26.2로 고정되어 있고 그 밖의 버전에서는 빌드가 거부됩니다. 같은 소스를 두 Go 릴리스로 컴파일하면 서로 다른 두 바이너리가 나오기 때문입니다.

공개된 태그를 다시 빌드해 해시를 비교하는 것이 바로 게시자를 믿는 일을 대신하는 검증입니다 — 전체 절차는 다운로드 검증에 있고, 설치는 일상적인 사용을 위한 빌드를 다룹니다.

이슈와 보안#

버그, 질문, 패치는 이슈 트래커로 보내 주세요. CONTRIBUTING.md에 변경 사항이 병합되기 전에 무엇을 갖추어야 하는지 적혀 있습니다.

취약점은 트래커가 아니라 SECURITY.md에 적힌 공개 절차로 보내 주세요. 이 프로젝트는 좋게 봐 주는 것보다 보고를 받는 쪽을 원하며, mainnet 전에 발견된 결함은 누구에게도 비용이 되지 않습니다.

라이선스#

트리 전체가 MIT입니다. 포크하고, 배포하고, 팔고, 이름을 바꾸세요 — 라이선스가 요구하는 것은 저작권 고지 하나뿐입니다. 다만 라이선스가 건네줄 수 없는 것이 하나 있는데, 바로 네트워크입니다. 그것은 여러분의 블록을 받아들이는 노드들이 정하며, 그 노드들은 spec/의 규칙에 따라 받아들입니다.