Cute Bow Tie Hearts Blinking Pink Pointer

전체 글 102

[truffle, 스마트 컨트랙트] d App 간단하게 만들어보기

목차 - truffle로 컨트랙트 배포하기 - 디앱이란? - 프론트 구현하기 컨트랙트 배포하기 트러플로 Counter 만들어보겠다. - Truffle 파일 만들기 cd truffle npx truffle init Front : create-react-app front 프론트도 만들어주겠다. create-react-app front # 이번엔 geth 말고 가나슈를 사용하겠다. 그 이유? geth 상당히 귀찮음. 가나슈는 트랜잭션이 발동할 때마다 알아서 마이닝을 해서 블럭이 생성된다. 즉, 편하다~ 새로운 터미널을 열어서 npx ganache-cli # Private Keys (0) 0xf4513fb9b43f........................... 가장 첫번째 비밀키를 메타마스크에 등록해주겠다.(..

[truffle] 트러플 사용 방법 알아보기.

목차 - 트러플 설치 및, 설정 - 트러플 컨파일 - 트러플 배포 - 트러플 사용하기 이더리움 dapp을 작성하고 사용하려면 컴파일하고 네트워크에 배포하고 배포된 컨트랙트와 연결해야하는 과정을 거치게 된다. 대략 solc를 사용해서 컴파일, 컴파일 된 파일에서 ABI 정보를 가져와서 geth에서 배포하고, 후에 컨트랙트 주소를 저장해두고 후에 사용할 때 주소를 통해서 접근한다. 실제로 개발을 해보면 보통 복잡한 게 아니다. 그래서 이러한 걸 해결해주는 프레임워크가 있다. 바로 트러플[truffle]이다. 트러플은 컴파일, 배포, 디버그, 테스트 기능을 제공한다. 이제 사용법을 알아보자. 1. 트러플 설치 및 설정 npm install -g truffle 설치가 끝나면 truffle version 버전이 ..

[이더리움] 스마트 컨트랙트 구현해보기

목차 - 솔리디티 언어란? - 컴파일러? - EOA, CA 차이 - 스마트 컨트랙트 구현을 위한 코드작성 솔리디티 언어란? What is Solidity? 솔리디티는 기존에 있던 언어가 아닌 이더리움의 스마트 컨트랙트를 구현하기 위해서 만들어진 이더리움 전용 언어입니다. 솔리디티는 Python, C++, Javascript같은 널리 알려진 언어와 사용법이 유사하며, EVM(Ethereum Virtual Machine)에서 구동되어 집니다. 이더리움은 기본적으로 무작정 솔리디티 코드를 짜는 것보다는 검증된 모범사례를 참고해서 작성되는 것을 권유하고 있습니다. 코인이 전달되는 코드이기 때문에, 잘못 짠 소스는 악의적인 해커(Hacker)들의 먹잇감이 될 수 있기 때문에 검증된 모범사례(Best Practic..

[Linux, Ubuntu] vs code/code.exe: permission denied 에러

터미널로 들어가 디렉토리 address에 접근 후 code . 를 사용하여 파일을 열려 했으나 갑자기 뜬 오류이다. chmod 도 해보고, VScode 권한 설정도 변경해주었으나 계속해서 오류가 떴다. 이게 잘 되던게 갑자기 왜 이러나... 여러방법을 시도해봤으나.. 해결방법은 간단했다... 터미널을 관리자 권한으로 실행해주면된다. 아이콘 우클릭 -> 관리자 권한으로 실행.... 주말동안 제대로 쉬다왔더니 이런 기본적인 것도 까먹었따 ㅎ +) 다음 날 해보니 또 안됐다. chmod +x [디렉토리명/파일명] 터미널에 접근하고 싶은 디렉토리/파일명을 chmod 명령어와 함께 쳐주면 쉽게 열린다.

에러 해결 2022.07.11

[web3] web3 연결 테스트

이전 글과 이어집니다. 전 글의 테스트 코드입니다. explorer 디렉토리 생성해서 npm install jest web3 block.test.js const Web3 = require("web3"); describe("Block", () => { let web3; it("web 연결 테스트", async () => { web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:9000")); const block_number = await web3.eth.getBlockNumber(); console.log(block_number); // for (let i = 1; i { const tx = web3.eth.getTransaction( "0..

블록체인 2022.07.01

[이더리움] geth puppeth 이용하여 private network 구성하기(리눅스 환경)

작업할 디렉토리 하나 생성해라. datadir로 사용할 예정 mkdir `node` node라는 제목의 디렉토리를 하나 생성해주겠다. 1. 새 계정을 하나 생성해준다. geth --datadir node account new 1234 1234 node/keystore 디렉토리 안에 새 계정이 생긴다. 2. go-ethereum 디렉토리 들어가서 make all 을 해서 puppeth ,bootnode를 다운 받을 것이다. 일다 오늘은 puppeth만 사용할 것이고, make all을 하면 자동으로 다 받아진다. puppeth : geth 환경설정 해주는 모듈 3. make all 이 종료되면, puppeth 위처럼 나와야한다. 만약 없다고 나오면 source ~/.profile 실행후 puppeth 4...

블록체인 2022.07.01

[이더리움] Geth로 다른 블록노드와 연결하기(리눅스 환경)

목차 - 개인키 파일인 json 생성해서 메타마스크 로그인 - geth 명령어 - geth 모듈 사용해보기 - private 네트워크 구성하기 제니시스, 체인네트워크로 나만의 네트워크 생성하거나, 코인 만들때 web3 라이브러리 같은 것들을 이용하는 것들은 geth부터 시작이다. 즉, geth가 이더리움의 근본이다. 앞으로 일어질 결과들은, go 언어와 geth 다운로드를 했다는 전제하에 이루어진다. 개인키 파일 생성하기 cd ~/.ethereum ls ~/.ethereum 디렉토리 안에 geth, keystore가 있는 것을 확인할 수 있을 것이다. (geth,ipc, history 일단 무시.아직 없는 게 맞음) 여기서 keystore는 내 개인키저장공간, geth는 chaindata 가 담긴 공간이..

블록체인 2022.06.30

[이더리움] web3 라이브러리 설치 및 기능 테스트

web3 라이브러리 이더리움 네트워크는 노드로 구성되어 있고, 각 노드는 블록체인의 복사본을 가지고 있더. 만약 스마트 컨트랙트의 함수를 실행하고자 한다면, 이 노드들 중 하나에 질의를 보내 아래 내용을 전달해야 한다: 스마트 컨트랙트의 주소 실행하고자 하는 함수, 그리고 그 함수에 전달하고자 하는 변수들 이더리움 노드들은 JSON-RPC라고 불리는 언어로만 소통할 수 있고, 이는 사람이 읽기는 불편하다. 컨트랙트의 함수를 실행하고 싶다고 질의를 보내는 것은 아래와 같다. 터미널에서 curl문법을 사용할 때: curl -X POST \ -H "Content-type: application/json" \ --data '{ "jsonrpc":"2.0", "method":"eth_accounts","param..

블록체인 2022.06.28

[이더리움] test account 만들어 메타마스크 사용해보기

이전 글과 이어집니다. ☞ 이전 글 바로 보러가기 1. ganache 설치해주기 터미널 geth 깃클론 받은 디렉토리까지 들어가서, npm install -g ganache-cli 다운로드가 끝나면, ganache-cli 위 명령어를 통해 실행한다.(test account 생성해주는 것임.) 뭐 이런 식으로 뜰 것임. 2. 메타마스크 크롬에 추가하기 그냥 구글에 쳐서... 확장프로그램에 추가해준다! 그리고 계정을 만든다. 네트워크 추가를 누른다. 위처럼 작성하면 저장 버튼이 파래질 것임.(필자는 이미 만든 상태라 저렇게 뜸) 계정 가져오기를 누른다. 아까 터미널에서 생성 된 test account 9개 중 아무거나 하나 비밀키(Private Key)를 복사해서 붙여넣어준다. 그럼 계정 추가 완료!

블록체인 2022.06.27

[이더리움] 리눅스 환경에 Go lang(Go 언어), Geth 설치하기

1. 리눅스에 Go 설치하기. (필자는 윈도우지만, VM으로 리눅스 설치했음) sudo apt-get update sudo apt-get install golang -y wget https://dl.google.com/go/go1.18.3.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz 가장 최신이 1.18.3이기 때문에 받음. 아래 링크에서 가장 최신의 버전을 확인할 수 있다. 터미널 말고 아래 링크를 통해 직접 다운로드 하는 방법도 있다. https://go.dev/dl/ Downloads - The Go Programming Language Downloads After downloading a binary rele..

블록체인 2022.06.27