안녕하세요 ludorum 입니다.
첫 회차에서.. 무언가 엄청난 글처럼 포장되어버렸지만, 목차를 몇개 나눠 필수 요소들에 대해서 각각 3,4분 이내에 개념을 익히고, 마지막으로 테스트 한번 해보는 간단한 글입니다.
아마, 프로그래밍 지식이 없으신 분들은 예제로 작성해드릴 프로그램들을 간단히 수정하는 정도,
프로그래밍에 지식이 있으신 분들은 처음 접하는 스팀에 대해서 조금 더 빠르게 내용을 파악하고 응용해보실 정도가 될 것 같습니다.
마지막 글에서는 모든 내용을 정리 포함하고, 수정하여 포스팅 될 예정입니다.
- 블럭체인에 접근하는 방법에 대해서
- 권한의 종류와 인증하는 방법에 대해서
- 데이터의 종류와 접근할 수 있는 방법에 대해서
- 데이터를 생성할 수 있는 방법에 대해서
- 프로그램 작성해보기
블럭체인에 접근하는 방법에 대해서
첫번째 챕터에서 알아볼 것은 블럭체인에 접근하는 방법입니다.
일반적으로 스팀을 프로그램에서 이용하기 위해서는 블럭체인에 동기화되는 노드에 연결되어야 합니다. 이러한 노드는 어떤 형태로 구성되어 있으며, 어떤 방식으로 접근하여 데이터를 주고 받는지 알아보도록 하겠습니다.
클라이언트와 서버
여기서 설명할 요소는 크게 클라이언트와 서버입니다.
클라이언트는 블럭체인 데이터를 활용하려는 우리의 프로그램입니다.
서버는 블럭체인 데이터를 가지고 있는 스팀체인의 노드들 입니다.
클라이언트는 블럭체인에 접근하기 위해서 먼저 서버인 스팀체인의 노드들에 접근해야합니다.
이러한 노드들은 블럭체인 데이터를 동기화하여 저장하고 있으며, 필요한 형태로 사용하기 위해 다양한 기능을 끄거나 킬 수 있습니다.
그래서 노드의 종류는 여러가지이지만, 우리가 접근할 노드들은 JSON RPC API라는 기능을 제공하는 노드입니다. JSON RPC는 우리에게 익숙한 웹소켓이나, HTTP POST방식의 메시지로 사용하실 수 있습니다.
*HTTP는 일반적인 웹에서 데이터를 주고 받는 방식입니다.
*POST는 HTTP 요청의 여러 포맷 중 한가지입니다.
JSON RPC API는 데이터를 주고 받아 명령을 실행하는 방식이며, 대부분의 스팀을 이용한 프로그램들은 이것을 사용합니다.
*steemit의 API 서버가 웹소켓을 지원하지 않기 때문에 해당 가이드에서는 웹소켓이 아닌 HTTP 방식을 사용합니다.
이제부터 JSON RPC API를 제공하는 노드를 서버라고 말하도록 하겠습니다.
그리고 서버에 접속하여 JSON RPC API를 사용하여 프로그램을 클라이언트라고 말하도록 하겠습니다.
대표적인 클라이언트로 steemit.com, steemkr.com, busy.org 과 같은 웹사이트부터 Vessel과 같은 지갑 프로그램이 있습니다.
이 클라이언트는 서버들에 https://로 시작하는 URL 주소를 통해서 접근할 수 있습니다. (목록참고: steem.center)
기본적으로는 https://api.steemit.com 을 사용할 것이며, 가끔 과부하나 다른 사유 때문에 다른 서버를 사용해야할 수도 있습니다.
자, 세줄로 다시 정리하겠습니다.
- 클라이언트는 서버에 접속해서 블럭체인을 이용합니다.
- 대표적인 클라이언트는 steemit.com, steemkr.com, busy.org 과 같은 웹사이트, Vessel같은 지갑프로그램이 있습니다.
- 대표적인 서버는 https://api.steemit.com가 있으며, steem.center을 참고하여 다른 서버를 선택할 수 있습니다.
주의 사항은, 노드들의 상태와 지원하는 API가 각각 다르다는 점입니다.
미리 테스트해보고 노드가 꺼져있거나, 원하는 API를 지원하지 않는다면 다른 노드를 찾아야할 것입니다.
다음 글에서는 스팀에서 행동을 하기 위해서 준비해야할 권한의 종류들과 인증 방법에 대해서 소개해드리겠습니다.
steemjs를 사용하여 프로젝트를 세팅하는 예제가 중간에 부록으로 포함되어 있으며, 권한과 관련된 예제도 함께 포함 됩니다.
저작물 권리 표시
Copyright© All Rights Reserved by .
Unless otherwise authorized, This work is licensed under a Creative Commons BY-NC-SA 4.0 License.
별도의 허가가 없는 경우, 이 저작물은 크리에이티브 커먼즈 BY-NC-SA 4.0 라이선스에 따라 이용할 수 있습니다.