목록웹 개발/블록체인 (42)
dukDukz
블록체인이라는 것은 하나의 서버(노드)가 여러대가 있고 이게 서로 연결되어있는 것들을 블록체인이다. 내 프로젝트의 아키텍쳐를 정확히 알고 있는가?? cli로 했던 것들을 이더리움에서는 ui 가 좀 있다. 이제 할 것도 우리가 했던 프로젝트와 비슷하다고 봐야함. 아키텍쳐 정확하게 인지하고 있어야 함.... 데몬이 누구랑만 소통하는지 정확히 알아야 함.. 데몬도 aws 에 올려야 한다... 데몬 (노드)에 json 형태로 블럭 헤더의 내용을 담았었는데 그거를 코인 빌드할 때 만들었던 data 폴더에 넣음 그리고 이 데몬을 돌리는 노드(컴퓨터)가 여러대 있는것. 이것들이 다 연결되어 있는거임 rpc 통신은 노드에 대한 정보를 알고 싶을때 사용하는것. 어떤 노드에 물어봐도 같은 정보가 나올 수 있어야함 (합의 ..
매수 : 사는 것 매도 : 파는 것 # DB 스키마 테이블 종류 1. order table buy / sell 2. assetsbalance table 현금에 대한 입출력 list 거래라는것은 기본적으로 2개가 있어야 한다. 돈 과 물건 혹은 물건과 물건이 교환되는 것. 거래소는 현금과 코인의 거래가 이루어진다. 현금을 갖고 있는지 파악하기 위해서 현금 입출력 내역을 저장하는 테이블이 필요하다. 총 남은 금액이 현금 자산.. 코인 같은 경우에는 내가 보낸거와 받는거 총 합 구해서 나온 결과가 내가 최종으로 갖고 있는 코인이 된다. 남은 현금 내가 지금 1000만원이 있다. 비트코인을 사려고한다면. 현재 비트코인 가격 6천 내가 매수하려 한다면 총 걸 수 있는 매수량은 0.167 1천만원은 매수 예약 걸었..
# 프로젝트를 들어가기 전에... - 기본적인 틀이 필요할 듯.. 거래소의 초점 → 백앤드에 있다고 봐야함 프론트도 리액트를 쓴다고 하면 양이 생각보다 많을거임 백엔드 기반을 만들어놔야 할 듯.. 로컬에서만 돌렸던 것을 PC 끼리 Peer 걸어서 코인을 주고 받는것을 해봐야함 업비트 빗썸을 사용한다고 하면, 내 계좌에 현금을 넣는다. - 입출금 내역 - 호가 창 만들어봐야함 React 제외하고 일단은 nunjucks 로 할거임 데몬과 express DB 까지 3개의 서버를 돌린다고 생각하면 됨. React 한다면 총 4개의 서버가 될듯. 리액트 책에 거래소 만들기 참고 데몬은 코인을 저장하는 실질적인 저장소라고 보면 될 듯 공통적으로 들어가는 부분 싹다 만들어놓고 시작하는것.- 와꾸잡는다.. [전체적인 ..
전체 코드 더보기 // url 127.0.0.1:3800 -> hello ingcoin! 출력을 해보자 const express = require('express') const request = require('request') const cheerio = require('cheerio') // npm install cheerio const app = express() // 요청 -> 응답 app.get('/', (req, res) => { res.send('hello ingcoin!') }) // 요청A - 요청B - 응답B - 응답A app.get('/naver', (req, res) => { // 요청 B - request 라는 패키지를 사용할거임 request('https://naver.com',..
오늘의 목표 → 데몬을 http 통신으로 데몬의 내용을 볼때 cli 라는걸 활용했었다. cli API 들을 배웠고... 데몬과 인터넷을 연결하고, 인터넷에서는 우리가 볼 수 있는 화면 (거래소) 를 만든다. 브라우저에 뭔가를 띄우고 한다는 뜻... 간단하게 말해서.. 이 데몬으로 요청을 보낼때, cli 로 하는게 아니라 http 통신으로 해보겠다는 것이다. cli 도 PRC 통신.. 거의 http 와 흡사하다. 그래서 http 로 요청했을 때 응답을 받을 수 있다. 그리고 응답을 받은것을 터미널에서 보여주는게 아니라 브라우저에 띄울 것이다. # 단계 1. http 요청 - 응답이 잘 오는가? 2. node js 환경(express)에서 http 요청을 한 것을 코드로 옮겨서 테스트를 해본다. (어떻게 처..
데몬을 실행시킨다는 것은 root 폴더 안에 bin 으로 실행시켜야 함 # 데몬1 & 클라1 연결하고 코인 생성 데몬 1 데몬 실행 .\ingcoind.exe -printtoconsole -datadir="C:\Users\USER\ingcoin2\data" or (배포 다운 ver) .\ingcoind.exe -printtoconsole -rpcport=3000 -rpcuser=ingoo -rpcpassword=1234 -conf="C:\Users\USER\ingcoin2\bin\incoind2.conf" -datadir="C:\Users\USER\tmp" 이렇게 옵션으로 써주거나 conf 파일을 작성해서 옵션에 conf 를 줘도 된다. 나는 conf 파일이 안먹어서 실습은 이렇게 진행했다. 클라 1 c..
# 비트코인 rpc http => rpc http 의 역할을 rpc로 구축한게 비트코인이다. 그러면 rpc 는 뭐냐? 웹소켓/http 랑 굉장히 비슷 클라와 서버간에 소통을 하게 해주는 녀석 http 요청으로 내용전달을 해줬었는데 비트코인 기준으로 보자면 http (이전에) rpc (이제는) 네트워크(웹소켓) -------------> 클라이언트 네트워크 : 비트코인을 빌드한 사람들끼리 연결해주는 역할 mineBlock 하면 클라가 http 요청하고 네트워크에 전달(함수 호출됨) 네트워크가 마이닝 할거야.. 이렇게 해서 블럭생성해서 결과를 내뱉어줌 그걸 화면에 뿌림 블럭을 생성해줘 라는 명령어가 qt에도 존재한다. -> Generate 숫자 숫자는 그만큼 마이닝한다는뜻 그럼 네트워크가 처리해줄게 해서 결..
# 나만의 코인 만들기 - 라이트 코인 (litecoin) https://github.com/litecoin-project/litecoin.git GitHub - litecoin-project/litecoin: Litecoin source tree Litecoin source tree. Contribute to litecoin-project/litecoin development by creating an account on GitHub. github.com doc 폴더 들어가서 build-windows.md 로 가서 보면 빌드 방법이 나와있음 근데 어제 비트코인 빌드한거랑 거의 비슷함 # 우리는 0.15 ver 로 할것이다 (branch 에서 설정하면 됨) - version 0.15 # 나의 코인을 만든..