Cute Bow Tie Hearts Blinking Pink Pointer

전체 글 106

[스마트 컨트랙트] 투표 dApp 만들어 보기

트러플을 활용해서 투표 기능이 있는 간단한 dApp 코드를 간단하게 작성하고 jest로 테스트 해보겠다. 목차 - sol코드 - jest코드 mkdir truffle cd truffle truffle init 터미널 새로열고 npx ganache-cli trffle-config.js development 부분 주석해제 truffle/contracts/Voting.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; contract Voting { string[] public candidateList; //배열 정의 mapping(string=>uint8) public votesReceived; // 키값에 string을 넣으면 uint8으로 valu..

[truffle, 스마트 컨트랙트] 토큰 생성해보기

mkdir truffle cd truffle truffle init contracts/SimpleStore.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; contract SimpleStore{ uint256 private value; address public owner; constructor(uint256 _value){ //배포됐을 때 생성 value=_value; owner = msg.sender; //스마트컨트랜트 발동한 사람의 주소 : 누구일까? 배포자의 공개키. } //contructor의 인스턴스는 CA 이전에 생성된다. function getAddress() public view returns (address){ return m..

[ truffle, 스마트 컨트랙트 ] 솔리디티 event 사용해서 dApp 간단하게 구현해보기

목차 - 솔리디티 event - dApp 구현 - 디렉토리구조 - 코드 구현 오늘은 솔리디티 event에 대해서 알아 보겠다. event 라는 것은 블록체인 네트워크의 블록에 특정값을 기록하는 것을 말한다. 예를들어서, 송금하기 라는 함수가 있다고 가정하였을때, 송금하기 버튼을 누르면, 누른 사람의 계좌와 금액이 이벤트로 출력이 되어서 블록체인 네트워크 안에 기록이 된다. 이렇게 로그를 사용하여, 블록에 각인시키는것은 일반적으로 string 이나 다른 값들을 스마트컨트랙에 저장하는것보다 효율적이다. 이전 글(바로가기)에 이어서 코드를 조금 수정하는 방향으로 event를 사용해서 dApp을 구현하겠다. 디렉토리 구조 이제 카운터만 되는... dApp 구현을 위한 코드를 작성해보겠다. 초기설정하기 터미널을 ..

[VSCode] prettier 설정하기

1. 일단 확장(extensions) 들어가서 prettier 치고 가장 처음 나오는 거 다운 받는다. 2. ctrl 과 , 키를 동시에 눌러서 설정 창을 연다. 3. 설정에서 Editor: Default Formatter 검색 Prettier -Code Formatter 선택 4. 설정에서 editor format on save 검색 체크 박스 체크해주기 5. Prettier 검색 본인이 편한대로 설정해주면 될 듯하다. 만약, 특정 파일만 설정 외의 값으로 지정하고 싶다면, .prettierrc 파일을 만들어서 루트 디렉토리 안에 넣어 추가 해주면 된다. 예시는 아래와 같다. { "printWidth": 120, "tabWidth": 4, "singleQuote": true, "trailingComma..

환경설정 2022.07.13

[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