목록웹 개발/블록체인 (42)
dukDukz
비트코인 빌드를 위한 사전 작업 1. doc 폴더에서 build-windows.md 파일을 읽어보기 2. wsl 설치가 되어 있어야 함 3. wsl 들어가서 쉘을 작성할 수 있도록 환경 세팅 4. cd ~ 홈디렉토리에서 작업을 시작한다. 5. .md 에 나와 있는 부분을 참고해서 뭔가 설치해라 비트 코인 github 비트코인 깃헙 주소가 필요하다 https://github.com/bitcoin/bitcoin 이 코드를 다운 받아서 구현해봐야한다. 대부분 C 코드로 구현 되어 있음.. 빌드 성공이 목표...! https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.md 여기에 들어가서 보자. $ sudo apt update $ sudo apt u..
C++ 환경설정... IDE tool 에 의존해서 하면 곤란해짐.. std::cout
# 메인넷, 테스트넷 1. 메인넷 : 자체적으로 독립된 네트워크 블록체인 네트워크가 완전히 개발 및 구축 되었을 때 사용하는 용어이며, 블록체인의 분산된 원장에서 암화회된 거래(트랜잭션)들이 검증 및 기록 되고 있음을 의미한다. 2. 테스트넷 : 블록체인 네트워크가 아직 최대용량에서 실행되고 있지 않은 경우를 설명한다. 테스트넷은 메인넷의 시스템이 안전하고 가동할 준비가 되었는지 확인하기 전에 블록체인 네트워크의 모든 측면과 기능을 테스트하고 해결하기 위해 프로그래머 및 개발자가 사용한다. 즉, 테스트넷은 블록체인 프로젝트의 프로토타입 메인넷은 사용자가 암호화 거래를 원활히 할 수 있도록 완전히 개발된 블록체인 네트워크이다. 참고 블로그 https://m.blog.naver.com/PostView.nav..
블록 체인으로 개발 한다는건 도대체 무엇이냐? - 사용자가 있기 때문에 개발하는것인데.. 블록체인은 사용자에게 어떤 편의성을 제공해 줄 수 있는가? -> 탈 중앙 데이터의 신뢰성 탈 중앙화 이지만 네트워크를 빌려다가 사용함 어떻게 배워야 활용도가 높은지에 포커스를 맞춰보자 # 암호화폐 -> 빗썹, 업비트에 상장되어있는 코인들을 말한다 비트코인 라이트코인 비트코인캐시 이더리움 도지 바나나톡 각각의 차이점이 있다. 비트코인과 비트코인캐시 비트코인 - 네트워크를 구성 + 모든 것을 다 만들었다. 비트코인캐시 - git clone 이름 변경! 라이트코인 - 비트코인 로직 그대로 C++ 로 만든거임 - 그나마 친화적인 얘를 빌드 해볼 거임 채굴에 대한 환상..? 이런게 있다 - 채굴은 연산을 하는것이고 코인별로 ..
[wallet.js] 생성 # secp256k1 이거를 쓴다... 상세한 내용은 블로그에서 알아보는게 좋을 것 같다. 사용방법만.. 알아보자 기본적으로 얘는 알고리즘 암호화다. 그래서 저 암호화를 사용하려면 패키지가 하나 필요한데, 그게 바로 elliptic 이다. $ npm install elliptic 가져오자 const ecdsa = require('elliptic') console.log(ecdsa); ecdsa 를 한번 찍어보자 색을 보니 class 는 절대 아님 찍어보니 긴 객체가 나오는데 일단은 이 안에 있는 ec 라는 애를 사용할거임 그래서 사용방법이 const ec = ecdsa.ec("secp256k1") // 암호화 방법은 secp256k1 console.log(ec); ec 를 찍어..
작업증명 - 마이닝, 채굴... 쉽게 말하면 블럭을 생성할 때 쉽게 생성하지 못하도록 하는것. http 인터페이스를 통해 body 영역에 내용 추가해서 블럭 추가했었는데, 요청을 해서 바로 생성 X 문제를 내고 풀었을때만 (컴퓨터가 자동으로 풀 수 있게끔- 몇번정도 try해서 풀었는지) 블럭 추가할 수 있게. [block0902.js] difficulty 와 nonce 추가 -> header 내용이 변경된 것 = BlockHeader 를 썼던 부분을 수정해줘야함 (3군데) 1. BlockHeader() 에 difficulty 와 nonce 추가 this.difficulty = difficulty // 문제 난이도 this.nonce = nonce // 문제 몇번 시도 했는지 해당 코드 더보기 class ..
내 src 폴더에서 $ node server 로 3000번 포트 열어준다. $ curl -X POST -H "Content-Type:application/json" -d "{\"peers\":[\"ws:192.168.0.43:6005\"]}" http://localhost:3000/addPeers -> 연결하기 $ curl http://localhost:3000/mineBlock -X POST -H "Content-Type:application/json" -d "{\"data\":[\"hyejun world1\"]}" -> 내거에다가 추가 # 남의 것 조회 curl http://192.168.0.43:3000/blocks | python3 -m json.tool # 내거 조회 curl http://loc..
[network.js] ws.on 얘도 비동기이다. 여기서도 이벤트 종류가 몇개 있을 것이다. 흔히 자주 쓰는 메서드가 무엇인지... websocket 의 on 이라는 매서드를 실행했을때.. 얘도 비동기로 실행되는 것이다. [websocket 의 이벤트 종류] open connection error close message *message 가 가장 중요하다 - 얘도 비동기로 처리가 된다. 이 인자값(data)은 누가 주는걸까? ws.on("message", data => {} 어케 가져왔지?? data라는 변수는 on 이라는 애가 만들어준것이다. 이제 그러면 network.js 를 쓰면서 이해해 보도록 하자! 가장 핵심적인 녀석이 ws Websocket 의 사용방법도 알아야 한다. npm socket 을..