목록웹 개발 (224)
dukDukz

smart contract 간단하게 만들어보기 # 스마트 컨트랙트 : 실제 구동시켜서 해보는것을 할 것이다. = 코드 실행 (솔리디티) / 스크립트 실행 # 가나쉬 : 메인넷 테스트넷 없이 로컬에서 간단히 돌리는것. 알트코인의 데몬을 간단하게 만든다.(이더리움) + 테스트용 100 이더가 채워져있는 10개의 주소가 주어진다. 총 1000개 # 스마트 컨트랙트를 위한 세팅 nodejs 환경에서 세팅이 가능하다. Truffle Ganashe 를 node js 환경에서 설치가 가능하다. $ npm install -g truffle $ npm install -g ganache-cli $ npm install web3 # web3 란 무엇인가? → rpc 통신을 쉽게 구현할 수 있게 도와주는 라이브러리이다. # ..
솔리디티 언어는 OOP 개념인데 이것을 배울 수 있는 사이트는 크립토 좀비 - https://cryptozombies.io/ko/ 10분 고민하고 안되면 next 크립토 좀비 pragma solidity ^0.4.19; contract ZombieFactory { uint dnaDigits = 16; uint dnaModulus = 10 ** dnaDigits; } 1. 버전 pragma solidity ^0.4.19; -> 버전을 적는 공간 왜 필요할까? 버전 업이 되면서 실행이 안되는 경우를 방지하기 위해서. 특정 버전으로 빌드하는 것. 선언해준다. 2. 메인 함수 (OOP 의 특징) contract ZombieFactory { } OOP 객체지향언어 에서 메인함수라고 보면 된다. 3. 변수 선언 u..

우리가 했던것은 블록체인 개념 중에 암호 화폐를 만든 것을 실습한 것이다. 암호화폐 안에 있는 비트코인을 배운 것이다. 암호화폐 안에는 이더리움이 속해있다. 그러면 왜 굳이 이더리움을 배워야 할까?? # 비트코인 특징 1. 라이트 코인 빌드 중에 거래 혹은 변수나 내용을 저장하는 코딩을 해야 하는 경우 2. A -> B 10개를 보내는 것을 사용하기. RPC 사용해서 sendtoaddress 이 API 를 수정하라고 한다면? => A->B 에게 보내는데 B가 확인 버튼 눌러야만 보낼 수 있게. rpc 자체를 이렇게 만들려면 못한다. 이런 것들을 이더리움에서는 쉽게!! 작성이 가능하다. (Go, Python, Java... 등등 사용이 가능하지만 주로 Solidity로 조건을 만들어서 사용한다.) 우리 입..

블록체인이라는 것은 하나의 서버(노드)가 여러대가 있고 이게 서로 연결되어있는 것들을 블록체인이다. 내 프로젝트의 아키텍쳐를 정확히 알고 있는가?? 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 요청을 한 것을 코드로 옮겨서 테스트를 해본다. (어떻게 처..