본문 바로가기

Ethereum5

Ethereum (6) - express와 web3-js를 사용하여 간단한 서버 구축하기 web3-js web3-js는 이더리움 노드와 상호작용할 수 있는 자바 스크립트 기반의 API 이다. 해당 API를 통해 이더리움 노드에 접근하여 계좌정보, 컨트랙션 정보, 블록정보 등을 조회할 수 있다. 공식문서는 여기를 참고하면 된다. 서버 구축하기 먼저 서버를 구축할 폴더를 만들고 npm init을 통해 프로젝트를 생성한다. mkdir ether_web3_server cd ether_web3_server npm init 그리고 ether_web3_server 폴더에 express와 web3.js를 설치한다. npm install express npm install web3 프로젝트에 index.js를 생성하고 다음 코드를 붙여넣는다. (해당 코드는 서버를 실행하기 위한 가장 기본적인 코드이며, AP.. 2022. 4. 6.
Ethereum (5) - BlockChain Private Network (Mac m1) 자 geth도 설치했고 간단한 테스트도 해봤으니 이제 Private Network를 구축해보자..! 현재 내 geth 버전은 1.10.15-stable 이다. Private Network 구축시에 가장 중요한 3가지가 있는데 바로 genesis.json, network id, 부트스트랩 노드 이다. 각 서버에 Private Network를 구축한다고 가정했을때, 위의 세가지가 동일해야 같은 네트워크에서 블록체인을 실행 시킬 수 있다. genesis.json genesis json 파일은 블록체인의 가장 처음 블록을 의미한다. 해당 json 파일이 다르면 블록체인의 처음 블록이 달라지기 때문에 , 서로 다른 Private Network가 되어 버리니 주의 해야 한다. chainId : networkId를 .. 2022. 2. 23.
Ethereum (4) - geth install & dev test(Mac m1) geth 설치 먼저 m1 전용 homebrew가 설치 되어 있어야 한다. 설치 후 터미널에서 아래와 같이 입력한다. brew install ethereum 설치 후 버전 확인 방법은 아래와 같다. geth version geth Test(Dev) geth 실행 설치가 다 됬다면 geth를 테스트 해볼 차례이다. geth를 실행하고, 두 계좌를 만들어 간단하게 송금 테스트 및 블록체인 실행을 해 보려고 한다. geth를 dev로 실행하는 방법은 다음과 같다. geth --dev --identity "블록체인 네트워크 이름" --datadir "블록체인 저장 폴더" --port "30303" --nodiscover --networkid 15 console dev : dev 모드로 실행 identity : .. 2022. 2. 10.
Ethereum (2) - 머클 패트리시아 트리 블록체인의 장점 중 하나는 블록체인 안의 모든 데이터를 모든 사용자가 공유하고 있다는 것이다. 근데 블록체인의 크기가 점점 증가하면 공유를 위해 많은 데이터를 동기화 해야 한다. 비트코인은 이를 해결하기 위해 머클 트리를 사용했다. 머클 트리(Merkle Tree) 머클 트리는 블록이 보유하고 있는 거래 내역들의 해시값을 가장 가까운 거래 내역끼리 쌍을 지어 해시화 하고, 쌍을 지을 수 없을 때까지 해당 과정을 반복하여 완성한다. 이 과정을 통해 다수의 데이터를 하나로 묶어 용량을 절약할 수 있다는 장점이 있다. 또한 암호화 해시 함수를 이용하여 만들기 때문에 데이터의 위변조를 막을 수 있다. 알고리즘은 다음과 같다. 1. 최초 데이터를 SHA256형태의 해시 값으로 변환한다. 2. 가장 가까운 노드 2.. 2022. 2. 6.