서비스 개발 절차
Service node는 서비스를 일반 사용자들에게 화면과 기능을 구현하여 제공하는 하나의 웹 서비스이다. Terminal node는 지갑앱과 보안 인터페이스를 제공하고, Blockchain node는 정보를 Block에 저장하는 역활을 한다면 Service node는 이 둘 사이에서 서비스 화면을 제공하고 둘간의 인터페이스를 통해 데이타의 처리를 제어 하게 된다. 하지만 DB를 생성하거나 세션을 관리하지 않는다.
Terminal Node는 Blockchain Node에 직접적으로 접속하지 않고, Service node를 통해서만 Blockchain Node에 접속한다. 이를 위해서 nodehome platform System은 보안 인터페이스 규칙에 맞는 API를 제공한다.
이 API들의 목적은 보안 프로토콜 인터페이스 제공과 산업별, 분야별 다양한 형태로 블록체인을 이용한 서비스 구축이 가능하도록 하는 목적이 있다. 또 이 Service Node는 단순히 서비스를 이용하는 사람들의 참여자 뿐만 아니라 Service Node를 직접 운영할 수 있도록 기능을 지원하고 운영을 유지 할 경우 서비스의 이용률에 따른 수익을 제공함으로써 보다 많은 Service Node를 확보하고 안전한 Service 네트워크를 구축하도록 유도할 수 있다.

서비스 개발은 nodehome platform의 SVM 기본 소스를 다운받아 원하는 서비스의 기능으로 개발하고, 기본 모바일 지갑앱인 TApp을 다운받아 테스트 및 운영할 수 있다.
최초 개발할 때와 테스트는 testnet에서 자유롭게 운영 가능하고 실제 운영할 때는 mainnet으로 변경 후 배포 및 운영을 할 수 있다. 만약 개발을 마치고 mainnet으로 전환하고자 한다면
소스 내 설정을 mainnet으로 변경하고 mainnet network에 서비스를 등록하면 된다.
Nodehome platform에서는 자유로운 testnet환경에서 개발을 지원하기 위해 수도꼭지를 지원[바로가기 메뉴링크] 한다.


[그림] 서비스 개발 순서

서비스 개발자(운영자)
기획, 준비 서비스 기획
개발환경 구축
SVM 기본 소스 내려받기
서버 구축
Tesetnet 개발 Testnet지갑 다운로드
Testnet계정생성, 잔고 준비
새서비스 추가
Testnet Seed server에 host 등록
서비스 개발 서비스 개발
Mainnet 개발 Mainnet 지갑 다운로드
Mainnet 계정생성, 잔고 준비
Nodehome 서비스 접속과 서비스 추가
Mainnet Seed server에 host 등록
Docker build, upload
배포 배포 및 운영
서비스를 구현하기 위해서는 블록체인에 서비스 추가를 해야 한다.
지갑앱에서 플랫폼의 기본 서비스인 nodehome 서비스에 접속하고 “새서비스 추가”기능을 통해 등록하게 된다.

[그림] 신규 서비스 추가 과정

node운영자는 서비스 운영자와 다르게, 이미 개발되고 배포된 docker image를 다운받아 설치 후 운영만 하면 된다. node서버 운영자는 운영 중 발생하는 transaction으로 운영 수수료를 얻을 수 있다.

서비스 node 운영
준비 서버 구축
설치 서비스 배포 버전 다운로드, 설치
Mainnet 지갑 다운로드
Mainnet Seed server에 host 등록
운영 운영

[그림] 신규 서비스 호스트 추가 과정

서비스 배포 정책
1. 서비스의 배포는 node운영자의 참여를 돕고 쉬운 서버설치를 위해 docker image 형태로 배포 하기를 권장한다.
2. 새 서비스의 추가는 최소4대 이상의 서버(node)를 준비해야 한다.
3. mainnet에 서비스 추가 시에는 일정 금액의 코인 수수료가 발생한다.
4. 운영을 시작한 후부터는 node의 위.변조를 막기 위해 동일 서비스의 모든 node 소스를 수정할 수 없다. 만약 version upgrade나 소스 패치가 이루어져야 할 경우 서비스 개발자 혹은 운영자는 서비스 중지 신청 프로세스를 마친 후 수정하고 모든 node에 전파해야 한다.
5. 서비스 개발 시 소스 코드 작성은 적용된 보안 정책을 반영하여 개발해야 한다. [Security Architecture 참고]