본문 바로가기

전체 글

(163)
Wallet 호환 Token 만들기 지갑에서 확인 가능한 토큰 예제코드를 리믹스에 작성했다. 작성후 compile ⇒ deploy하려는데 함수 이름과 contract이름이 WalletVisibleToken으로 동일하여 함수를 배포하려고 인식했다. 그래서 함수 뒤에는 f를 한자 더 하여 이름을 구분해주니 제대로 배포되는걸 확인할 수 있었다. 배포된 각 함수를 사용해 보자. 1. transfer : 인자값으로 수신자주소와, 보낼 값을 입력한다. 2. WalletVisible Token : wallet에 보이는 기본 토큰 개수를 정해준다. 3. balanceOf : 내 계정의 value(balance)를 확인할 수 있다. 처음에는 확인할 수 없던 transfer함수를 사용해서 다른계정으로 value를 옮겨보자 remix에서 제공하는 EOA하나에..
vscode에서 solidity 버전 변경하기 solidity 파일을 컴파일 하려는데 버전이 0.4대인 옛날코드였다. 문법을 전부 고쳐줄 수 도 있지만 버전을 바꿔주는 방향으로 해봤다~ f1을 누른다 그럼 이런 창이 나오는데 여기서 Solidity: Change global compiler version을 누르고 거기서 버전을 선택하면 된다~!
메타마스크 에러 code 32603 Error: [ethjs-query] while formatting outputs from RPC (transaction underpriced error) contract approve 테스트 하다가 갑자기 오류 발생 몇번 시도해도 같아서 서치해봤는데 가스가 적어서 오류난거였다. 메타마스크에서 5gwei에서 10gwei로 바꿔주니 정상작동 되었다!
스마트 컨트랙트 프로그래밍 스마트 컨트랙트란? 1996년에 닉 사보가 제안한 디지털 계약으로 계약 계약의 내용을 디지털로 저장하고 참가자들이 정의된 약속을 수행하는 프로그램의 형태이다. 이더리움 가상머신(EVM)이란? https://www.notion.so/EVM-9690b31d386e4619a4be0bde749ad294 참고 EVM의 구조 : Stack 영역 — 연산에 필요한 데이터를 저장하는 공간. 최대크기는 1024개로 제한되어있다. 콜 데이터 영역 — 트랜잭션 발생시 전송되는 데이터들이 기록되는 저장공간. (Log는 저장만 하고 읽으려면 web3를 사용해야한다.) 스토리지 — 블록체인에 영구적으로 기록되는 데이터들을 저장하는 공간. 메모리 — 함수를 호출하거나 메모리 연산을 수행할 때 사용되는 영역. Gas라는 개념을 사용..
부트스트랩 노드 부트스트랩 노드란? 이더리움 네트워크는 중앙 서버 없이 노드간의 연결로 구성된 분산 구조 네트워크이다. 하지만 하나의 노드가 네트워크 안의 모든 노드와 연결되는 것이 아니라 서로의 주변 노드들에 연결하는 구조를 가지고 있다. 이런 구조 형식때문에 네트워크 내에서 특정 노드를 찾기가 어려워진다. 이를 해결하기 위해 존재하는 것이 부트스트랩 노드인데 부트스트랩 노드는 일정 기간 동안 그들과 연결되었던 노드들의 목록을 저장한다. 그래서 내 노드가 이더리움 네트워크에 다시 접속할때 부트스트랩 노드에 먼저 연결하여 최신 노드 연결 목록들을 불러와 정보를 공유한다 (접속하는 순간 나도 연결 목록에 들어가 나도 함께 노드를 공유하게 된다). 즉 노드들을 부트스트랩(동기화)시켜주는 것이다. 그렇다면 이 부트스트랩 노드..
[EVM] 이더리움 가상머신 EVM : Ethereum Virtual Machine 이란? EVM, 즉 이더리움 가상머신은 이더리움 네트워크의 노드들이 공유하는 하나의 가상머신이다. 거대한 분산 컴퓨터라고도 볼 수 있다. 가상 머신 : 물리적 하드웨어 시스템에 구축되어 자체 cpu, 메모리, 네트워크 등을 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경이다. 블록체인 네트워크 상의 노드들이 가상머신에 접근하여 컴퓨터가 가지고 있는 데이터를 가지고 오거나 변경할 수 있다. (상태변경) 이더리움 가상머신에서는 스마트 컨트랙트가 실행되게 되는데 솔리디티로 짠 스마트 컨트랙트 그 자체로는 실행할 수 가 없다. 왜냐하면 솔리디티는 C언어나 Java처럼 사람이 이해하기 위해서 만든 언어이기 때문이다. 기계가 바로 이해할 수 없는 사람이 이해..
머클 패트리시아 트리 블록체인의 가장 큰 장점이자 특징은 블록체인의 모든 데이터를 참여자들이 모두 공유한다는 것이다. 그러나 블록체인의 크기가 계속해서 증가한다면 공유를 위해 많은 데이터를 동기화 해야하는 것이 문제이다. 이 문제를 해결하기 위해 머클 트리를 사용했고 이더리움에서는 이를 개선하여 머클 패트리시아 트리라는 암호 해시 기반의 트리 자료구조를 사용한다. 트리 내의 모든 정보는 레벨DB에 저장한다. 해시 함수란? 해시 함수는 임의의 크기 값을 입력했을 때 고정 크기 값을 생성해 내는 함수다. 예를들어 “허유명”이라는 글과 “유명한 허유명”이라는 글을 sha256으로 암호화 했을때 들어간 byte값을 다르지만 64바이트 크기의 고정된 문자열 값을 생성해 낸다. 이더리움에서는 keccak256 암호 해시를 사용한다. 머..
Must use destructuring props assignment react/destructuring-assignment netlify에 코드를 올리려고 하는데 제목과 같은 에러가 뜨면서 build가 안됐다. 코드 내에 props 상속관련 문제인 것 같았는데 내 코드에는 딱히 고칠 부분이 없었다. 그래서 그냥 eslint파일 rules에 "react/destructuring-assignment": [0,"always"] 추가해 주니 잘 해결 되었다.