최근 사건으로 인해 기존 도메인 이름 접근 서비스에 대해 다시 생각해 보게 되었습니다. 도메인 이름 확인 서비스는 매우 안정적이라고 항상 믿어왔지만, 가끔 문제가 발생하기도 합니다. 분산형 솔루션이 대안으로 검토해 볼 만한 가치가 있을지 궁금합니다.
생각해 보니 블록체인에 페이지를 배포하면 다음과 같은 이점이 있을 수 있습니다.
1. 분산화: 모든 수정 사항에는 모든 사람의 공동 동의가 필요하며, 어떤 단일 조직도 최종 결정권을 갖지 않습니다.
2. 인증서 불필요: 블록체인 자체가 암호화 기술을 사용하므로 추가적인 인증서 구성이 필요하지 않습니다.
TON에서 도메인 이름 체계를 본 적이 있는데, 당시에는 그저 재밌을 뿐이고 그다지 실용적이지 않다고 생각했습니다. 기존의 접속 방식이 이미 매우 안정적이고 널리 사용되고 있었기 때문입니다. 하지만 이제는 정말 유용할 것 같아서 더 자세히 연구해 볼 생각입니다.
블록체인 기반 웹사이트 만들기
이 글에서는 TON에 웹사이트를 구축하고 사용자가 브라우저에서 해당 페이지에 접속할 수 있도록 하는 방법을 살펴보겠습니다. 이 과정은 세 단계로 구성됩니다. 1. 도메인 이름 구매; 2. 프런트엔드 페이지 준비; 3. 페이지를 도메인 이름에 연결.
블록체인과 WEB2 환경에서 도메인 이름의 개념은 사실 비슷합니다. 둘 다 복잡하고 기억하기 어려운 주소의 별칭입니다. 블록체인에서는 사용자의 주소를, WEB2에서는 서비스의 IP 주소를 나타냅니다.
도메인 구매
TON을 예로 들어 보겠습니다. 도메인 이름의 공식 구매 주소는 https://dns.ton.org/ 이며, 가격은 TON 단위로 계산됩니다. WEB2와 마찬가지로 글자 수가 짧을수록 도메인 이름은 더 비싸지며, 가격은 1~100TON입니다.
도메인 이름을 소유한 사람이 없는 경우, 낮은 가격으로 입찰할 수 있으며, 입찰 후 카운트다운이 시작됩니다. 카운트다운 중에는 누구나 입찰할 수 있으며, 카운트다운이 끝날 때까지 계속됩니다. 도메인 이름이 경매되면 도메인 이름은 NFT 형태로 사용자 지갑에 저장됩니다. 도메인 이름 NFT는 거래가 가능합니다. 도메인 이름은 1년 동안 유효하며, 만료 후 회수됩니다.
요약하자면, 공식 웹사이트에서 경매를 통해 도메인 이름을 구매할 수도 있고, 다른 사용자와 거래할 수도 있습니다.
프런트엔드 페이지 준비
이 단계에서는 표시할 프런트엔드 페이지를 준비해야 합니다. 편의를 위해 이 글에서는 HTML 파일과 nginx만 준비하여 페이지를 노출합니다. 물론, 이 프로젝트에는 프런트엔드 페이지를 실행하기 위한 클라우드 서버도 필요합니다. 이 단계는 기존 프런트엔드 애플리케이션 배포와 동일합니다.
페이지를 .ton에 바인딩합니다.
.ton 도메인을 구매하시면 TON DNS 공식 웹사이트에서 ANDL 주소를 바인딩할 수 있습니다. 물론, TON에서 제공하는 바인딩 도구를 사용하여 공식 웹사이트의 안내 에 따라 페이지를 바인딩할 수도 있습니다.
바인딩이 완료되면 서버에서 HTTP 요청을 수신하고 UDP로 전달하기 위한 수신 포트를 시작해야 합니다. 여기서는 공식 rldp-http-proxy 도구를 사용하고 다음 명령을 입력하여 시작할 수 있습니다.
rldp-http-프록시/rldp-http-프록시 -p 8080 -c 3333 -C global.config.json
여기서 8080은 로컬 호스트에서 들어오는 HTTP 쿼리를 수신하는 TCP 포트이고, 3333은 모든 아웃바운드 및 인바운드 RLDP와 ADNL 활동(즉, TON 네트워크를 통해 TON 웹사이트에 연결)에 사용되는 UDP 포트입니다. global.config.json은 TON 글로벌 구성의 파일 이름이며, 여기에서 다운로드 할 수 있습니다.
.ton 도메인 방문
브라우저에 .ton 도메인 이름을 직접 입력하여 웹사이트에 접속하려고 해도 브라우저가 도메인 이름을 어디에서 확인해야 할지 모르기 때문에 작동하지 않습니다. 따라서 몇 가지 추가 작업이 필요합니다.
.ton 요청 프로세스
.ton 도메인 이름을 요청할 때, 해당 ANDL 주소가 체인에서 먼저 쿼리됩니다. 이 주소는 WEB2의 IP 주소로, 웹사이트 구축 시 자동으로 생성됩니다. 이 쿼리 과정은 DNS 쿼리 과정과도 유사합니다.
그러면 ANDL 주소에 따라 요청이 해당 기기로 전달되고, 반환되는 해당 페이지를 지정할 수 있습니다. 전반적인 프로세스는 WEB2와 매우 유사하지만, 주요 차이점은 주소 및 도메인 이름 매핑 쿼리 방식이 다르다는 것입니다.
프록시를 통해 페이지에 접근하기
가장 권장되는 방법은 공식 웹사이트에서 제공하는 프록시 도구인 Tonutils Reverse Proxy를 사용하는 것입니다. 다운로드 및 설치 후 프록시를 위한 8080 포트가 활성화되고, .ton 도메인에 접속할 수 있습니다.
.ton 도메인 이름을 가진 웹사이트에 접속할 수 있다는 것을 알 수 있습니다.
사용 요약
현재 다음과 같은 문제가 발생했습니다.
웹사이트가 실행되는 환경에 대한 요구 사항이 있습니다. 시스템은 glibc 버전 2.34 이상을 지원해야 하므로, 페이지를 배포하기 전에 컴퓨터가 요구 사항을 충족하는지 확인하세요.
설명서가 명확하지 않습니다. 아마도 이 TON을 웹사이트 운영에 활용하려는 수요가 많지 않아서 설명서가 완벽하지 않아서 직접 살펴봐야 할 수도 있습니다. 게다가 중국어 버전은 시의적절하게 업데이트되지 않아 영어 버전보다 뒤떨어져 있습니다.
접속 속도가 느립니다. 기존 웹사이트에 비해 접속 속도가 느립니다. 물론 여러 요인이 복합적으로 작용하고 있으며, 앞으로 개선의 여지가 많다고만 말씀드릴 수 있습니다.
해당 지갑에서는 지원하지 않습니다. 공식 웹사이트는 프록시 설치 없이 접속할 수 있는 간단한 내장 브라우저 페이지를 제공합니다. 그러나 현재 모든 주요 지갑에서 이 웹사이트는 피싱 웹사이트로 분류되고 있습니다.
전반적으로 현재의 경험은 실제로 평균적이며, 앞으로 개선할 수 있는 부분이 많이 남아 있습니다. 하지만 저는 이 방향이 매우 훌륭하고 혁신적이며 시도해 볼 가치가 있다고 생각합니다.