개발/BlockChain

    [BlockChain] truffle로 스마트컨트랙트 배포하기

    1. geth geth --datadir node --http --http.addr "127.0.0.1" --http.port 8000 --http.corsdomain "*" \--http.api "admin,eth,debug,miner,net,txpool,personal,web3" --syncmode full --networkid 1234 \--port 30300 --ws --ws.addr "127.0.0.1" --ws.port 8001 --ws.origins "*" \--ws.api "admin,eth,debug,miner,net,txpool,personal,web3" \--allow-insecure-unlock --unlock "0,1" --password "./node/password.txt" 2..

    [BlockChain] 스마트 컨트랙트 배포

    1. controll/client.js, controll/compile.js 작성 (1) client.js // npm i web3 const Web3 = require("web3"); let instance; class Client { constructor(_url) { // instance의 내용이 있으면 내용이 이미 있는 instance 반환 if (instance) return instance; // instance 내용이 없으면 동적 할당으로 생성한 Client 클래스 객체에 web3 생성 this.web3 = new Web3(_url); // 생성후에 instance 변수에 Client 클래스 객체 할당 instance = this; } } module.exports = { Client }; ..

    [BlockChain] solidity 컴파일

    1. solc solc 설치 npm i solc 컴파일 명령어 // npx solc --bin --abi (파일경로) npx solc --bin --abi test.sol 작성한 test.sol 파일 /* 솔리디티 버전 */ pragma solidity ^0.8.15; // HelloWorld 컨트랙트 contract HelloWorld { string text; constructor(){ text = "Hellooooo World~~~~~"; } function getText() public view returns(string memory){ return text; } function setText(string memory value) public{ text = value; } } 2. abi,bin ..

    [BlockChain] geth

    [BlockChain] ubuntu 환경 설정 메타마스크와 연결하고 geth, ganache 를 실행하기 위해서 unbuntu 환경에서 개발을 진행한다. window 기준으로 설치를 진행한다. 0. 우분투 환경 설정 (1) 제어판 -> 프로그램 -> 프로그램 및 기능 -> windows diary-blockchain.tistory.com 1. geth 개념 (1) private network 가상 사설망이란 뜻인데 회사 조직에서 독립적으로 사용하는 네트워크(인트라넷)라고 생각하면 된다. 그 가상 사설망으로 우리는 geth를 사용한다. (2) chaindata, keystore chaindata 폴더 : 블록 헤더 내용, 블록의 바디 트랜잭션의 내용이 들어있다. keystore 폴더 : geth에서 관리하..

    [BlockChain] React 메타마스크 연결하기

    [BlockChain] RPC web3 테스트 1. RPC 개념 분산 네트워크를 프로그래밍으로 어떻게 쉽게할지 고민하다가 나온 개념이다. 일반적으로 통신 패턴은 서버를 켜고 클라이언트에서 서버에 요청, 서버에서 반환, 클라이언트는 반환 diary-blockchain.tistory.com 1. 프론트와 메타마스크 연결 (1) 네트워크 추가 메타마스크에서 네트워크 수동추가를 누른후 아래와 같이 입력한다. 현재 ganache를 켜놨기 때문에 사용중이라고 뜨지만 상관없다. 계정 가져오기를 누른후 ganache 에 있는 개인키를 입력하면 test넷에 test용 이더가 들어가 있는걸 확인 할 수 있다. (2) 프론트와 연결 트랜잭션을 보낼때 사용자의 개인키를 사용해서 서명을 만드는 과정을 거친다. 개인키를 이용하면..

    [BlockChain] RPC web3 테스트

    1. RPC 개념 분산 네트워크를 프로그래밍으로 어떻게 쉽게할지 고민하다가 나온 개념이다. 일반적으로 통신 패턴은 서버를 켜고 클라이언트에서 서버에 요청, 서버에서 반환, 클라이언트는 반환 받는 구조로 되어있다. 예) http, socket RPC는 원격 프로시저 호출이라는 뜻으로 별도의 원격제어를 위한 코딩없이 다른 주소공간에서 함수나 프로시저를 실행할수 있게하는 프로세스간 통신 기술이다. 원격 프로시저를 호출하면 위치가 어디있든 동일한 코드를 이용할 수 있다. 참고 페이지 : RPC란? 분산 네트워크 컴퓨터 환경에서 프로그래밍을 쉽게 할 수 있는 방법을 찾다가...Client to Server 패턴Server를 켬Client는 Server에 데이터 혹은 행동을 요청Server는 요청 받은 내용에 대한..