BlockChain41 (BlockChain) EVM & Solidity EVM : Ethereum Virtual Machine의 약자 Smart Contract를 실행하기 위한 가상의 컴퓨터 JVM(Javascript Virtual Machine)과 유사 블록체인 네트워크 (peer)에 포함되어 항상 실행 노드(peer)끼리의 합의에 사용 ByteCode 실행에 사용 네트워크의 모든 노드는 블록 검증을 위해서 동일한 계산을 수행하며 같은 값을 저장 Ethereum 전체를 작동하는 엔진 EVM byteCode 언어 사용 Turing complete state machine Turing complete : 조건문과 반복문을 사용할 수 있다는 뜻 state machine : 한번에 하나의 상태를 가진다. 즉, 여러 상태를 동시에 가질 수 없다 EVM의 동작 원리 Smart Con.. 2023. 2. 27. (BlockChain) Web3 라이브러리 (ws) express와 web3 라이브러리 설치 npm i express web3 const express = require("express"); const Web3 = require("web3"); const app = express(); const web3 = new Web3("ws://localhost:8888"); geth에서 websocket 열기 --ws --ws.port 8888 --ws.origins "*" : ws에 대한 설정 추가 geth 연결 명령어 geth --datadir ~/myGeth --http --http.addr "0.0.0.0" --http.port 8080 -http.corsdomain "*" --http.api "admin,miner,txpool,web3,personal,e.. 2023. 2. 15. (BlockChain) Web3 라이브러리 Web3 라이브러리 Ethereum 네트워크와 상호작용할 수 있는 다양한 메서드를 제공해 주는 JS 라이브러리 Ethereum 클라이언트에서 RPC 요청을 쉽게 보낼 수 있다 Modules 종류 web3-eth web3-utils web3-bzz web3-shh 설치 및 사용방법 라이브러리 설치 npm i web3 script src 추가 web3 연결 확인 console.log(Web3); const web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); console.log(web3); console.log(web3.eth); console.log(web3.utils); console.log(web3.bzz); consol.. 2023. 2. 14. (BlockChain) Metamask 내장 객체 사용하기 Web3 라이브러리를 사용하기 앞서서 metamask에서 기본적으로 제공해 주는 객체 사용법! ethereum 객체 사용 시 요청 방식 metaMask 객체 console.log(window.ethereum); metaMask 연결 확인 if(window.ethereum){ const isConnected = window.ethereum.isConnected(); console.log("JS 읽자 마자 isConnected : ", isConnected); } 이벤트 등록 connect : 연결됐을 때 if (window.ethereum) { const isConnected = window.ethereum.isConnected(); console.log("JS Onload isConnected : ", .. 2023. 2. 13. 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음