Block Chain & NFT
본문 바로가기
반응형

전체 글147

인코딩 vs 디코딩 정확하게 이해하기 이번 개발 프로젝트를 하며 인코딩, 디코딩을 많이 접했다. 개발을 진행하면서 많이 답답했었다. 기본 지식이 없는 상태에서 어떤 인코딩인지 어떻게 디코딩을 해서 써야할지 코드를 겨우 찾아 썼지만서도 제대로 이해하며 코드를 작성한 건 아니였기 때문이다. 이제야 겨우 한숨 돌리며 제대로 이해해보는 인코딩, 디코딩! 인코딩이란 ? 사람이 인지할 수 있는 문자(언어)를 약속된 규칙에 따라 컴퓨터가 이해하는 언어 (0과 1)로 이루어진 코드로 바꾸는 것을 통틀어 일컫는다. 즉, 인코딩 encoding이란 정해진 규칙에 따라 코드화, 암호화, 부호화하는 것을 말한다. 이렇게 인코딩을 하는 이유는 정보의 형태 표준화, 보안, 저장 공간 절약 등을 위해서이다. 예를 들어 친구에게 "비트코인 지금 당장 사야해"라도 말하고.. 2022. 8. 5.
[Remix] 이전 스마트컨트랙트 불러오기 노트북이 꺼졌거나 어떤 이유에서든 remix에 배포한 스마트컨트랙트가 사라져있다면 !! 👇👇 전제 조건 (배포하면서 저장해놓아야하는 것들) 1. 스마트 컨트랙트 코드 2. 스마트 컨트랙트 배포 주소 🧙‍♂️ 예전에 배포한 스마트 컨트랙트 다시 불러오는 방법 1. Remix 의 Workspaces로 돌아가서 contracts 파일 안에 만들어 놓았던 "파일명".sol 에 저장해 둔 스마트 컨트랙트 코드를 복붙한다. 2. 컴파일러 버전을 확인하고 enable optimization 에 체크하고 컴파일한다. -> 초록색 체크가 뜨면 3. 배포하는 곳에 와서 Environment - Injected Web3인지, 그리고 network가 내가 배포한 곳이 맞는지 (polygon은 137) 확인 , contract.. 2022. 5. 23.
Error: [ethjs-query] while formatting outputs from RPC (transaction underpriced error) Polygon 메인 네트워크에 실제로 배포를 해보려니 많은 우여곡절이 있엇다 먼저 내 메타마스크 지갑에 Matic을 사서 옮겨야하고 또 배포하려니 Matic만 있으면 안되고 또 수수료를 ETH로 결제하넴 🤦🏽‍♀️ 겨우겨우 다 해서 이제 배포하려니 아래와 같은 에러가 나왔다. Error: [ethjs-query] while formatting outputs from RPC (transaction underpriced error) 만약 gas 가격이 너무 적게 설정된 경우 트랜잭션을 수행하려고 할 때 이런 에러가 난다고 한다. 해결법은 👇👇 1. 메타마스크 설정 -> 고급 -> 고급 가스 제어 기능 켠다. 2. 트랜잭션을 일으킨다. 최대 우선 요금 (GWEI)와 최대 요금 (GWEI)를 모두 40으로 맞추.. 2022. 5. 19.
[cicd] CI/CD란? 개념 이해하기 CI/CD란 ? - Continuous Integration / Continuous Delivery (or Deployment) 의 약자 즉, cicd란 지속적인 통합, 지속적인 서비스 제공하는 방법이다. 우리가 일상생활에서 자주 쓰는 어플리케이션, 어플은 눈에 잘 띄지는 않지만 계속해서 업그레이드가 되고 있다. 해당 어플리케이션을 운영하는 회사의 입장에서 보자면, 한번 출시한 어플을 UI든 알고리즘이든 기능 추가든 그대로 몇 년간 두게되면 트렌드를 따라가지 못하고 점차 쇠퇴되기 마련이기 때문에 계속해서 사용자들의 피드백을 경청하고 새롭고 더욱 편리한 서비스를 끊임없이 기획하고, 개발하고, QA를 통과하면 업그레이드된 새로운 버전을 배포한다. 이 때 새로운 기능 추가 등으로 개발 및 운영팀에 발생하는 문.. 2022. 4. 7.
[eth.getTransaction]ERC20 토큰 이체 value 알아내기 / input data value 0 [eth.getTransaction]ERC20 토큰 이체 value 알아내기 / input data value 0 이더리움 Explore 구현 중에 이더리움 transfer, 이체를 한 트랜잭션 hash를 사용하여 eth.getTransaction('TxHash')으로 얻은 정보들 중 value에 얼마의 이더리움을 이체했는지 나온다. 마지막 row에 value = 0.1 로 표시되어 있다. 해당 트랜잭션은 from에 해당하는 계정(EOA) 으로부터 to에 해당하는 계정으로 0.1개의 이더리움을 이체한 것이다. (테스트넷에 있는 랜덤 트랜잭션을 가져옴) 그런데 테스트넷에 ERC20 토큰을 배포하여 이를 다른 계정으로 이체했을 때 이상하게 value가 항상 0으로 나온다! 찾다가 이는 getTransact.. 2022. 4. 3.
web3 transfer error = Error: overflow ERC20 토큰 이체 시 overflow에러 해결법 이더리움 Rinkeby 테스트넷에 ERC20 토큰을 발행 후, Contract를 불러와 transfer 이체하도록 개발 중에, 1을 넣으면 1* -10**18승 으로 0.0000000000000000001 ? 이렇게 나온다. 이더리움의 ETH 이체 시에는 web3.utils.toWei("이더리움 수", "ether") 이렇게 이미 쓰고 있어서 이더리움은 문제가 없었다. ERROR : web3 transfer error = Error: overflow JavaScript 수들이 충분한 정확성이 없기 때문에 web3.utils.toBN() 을 사용하면 된다고 한다. toBN() 인자값으로는 number, string 모두 가능하다. // const value = value*10**18; ----> ERROR.. 2022. 4. 1.
Error: web3.toWei is not a function 이더리움 web3로 이체하기 web3를 활용하여 이더리움 계좌이체를 진행하다가 나온 에러 2017년도의 정보로 web3.sendTransaction({to:receiver, from:sender, value:web3.toWei("0.5", "ether")}) 이렇게 썼다가 아래와 같은 에러가 나왔다. Error: web3.toWei is not a function​ 2018년 이후의 답변에서 찾아보니 web3 v1.0부터 toWei와 같은 많은 utility functions 들이 web3.utils. 안으로 옮겨졌다고 한다 !! -> we3.utils.toWei("0.5", "ether") 이렇게 작성하기 그러면 이제 두번째 에러가 나온다. Error : web3.sendtransaction is not a function 이번에.. 2022. 3. 31.
MetaMask: 'ethereum.enable()' is deprecated and may be removed in the future. Please use the 'eth_requestAccounts' RPC method instead. MetaMask 지갑과 연결할 때 if (window.ethereum) { try{ await window.ethereum.enable(); 요렇게 작성했더니 ethereum.enable()은 곧 사라지는 기능이니 request방식을 사용하라고 나온다. ERROR : MetaMask: 'ethereum.enable()' is deprecated and may be removed in the future. Please use the 'eth_requestAccounts' RPC method instead. 따라서 아래처럼 바꿔주면 된다. if (window.ethereum) { try { const accounts = await window.ethereum.request({ method: 'eth_requ.. 2022. 3. 31.
[truffle] 이더리움 테스트넷 rinkeby에 스마트컨트랙트 배포하기 ethereum truffle로 테스트넷 Rinkeby에 smartContract 배포하기 1. contract 작성 (openzepplin) 2. $ truffle compile (컴파일 하기) - 여기서 에러가 많이 나왔다. truffle-config의 compilers: { solc: { version: "0.8.0"}} 부분과 스마트 컨트랙트의 버젼을 모두 맞춰주어야 한다. 3. 배포하기 전 Truffle - Rinkeby에 연결하기 $ truffle migrate Error : Something went wrong while attempting to connect to the network. Check your network configuration. 해결법 $ npm install truffl.. 2022. 3. 29.
Node.js Web3.js 로 이더리움 테스트넷 Rinkeby연결하기 (by INFURA) - Ganache 단점 이더스캔과 같은 익스플로어(explorer)를 만드는데 ganache로 가상 블록체인을 띄웠더니 여러 단점들이 있었다. 1. 하나의 블록에 하나의 트랜잭션만 가능하다. 2. ganache 터미널창을 실수로 끄게되면 또는 컴퓨터 전원을 끄게되면 해당 블록들과 트랜잭션들이 모두 날아간다. -> 만약 ganache 블록체인 상에 스마트 컨트랙트를 일으켜 토큰 발행을 했다면 이것도 날아가버린다. 그래서 이더리움의 여러 테스트넷 중 이더리움 측에서 직접 만든 Rinkeby 테스트 넷을 사용하게 되었다. 이를 위한 전제 조건은 1. Ethereum test net node (우리는 Infura.io를 사용할 예정) 2. 최신 Node.js 설치 (나의 node version : v16.13.1) 3. Web3 설치.. 2022. 3. 28.
MetaMask - RPC Error: Permissions request already pending; please wait. {code: -32002, message: "Permissions request already pending; please wait."} MetaMask - RPC Error: Permissions request already pending; please wait. {code: -32002, message: "Permissions request already pending; please wait."} truffle, web3, react로 이더리움 explorer를 개발 중, 위와 같은 에러가 나왔다. 브라우저에서 메타마스크 상태를 잠금으로 해놓으면 잘 되던 사이트가 에러가 난다! 찾아보니 내가 이미 permissions request를 제출했지만 아직 유저가 메타마스크 로그인을 안했거나 나의 사이트 접근 허가가 되어 있지 않아서 그렇다고 한다. 도큐먼트에서 나왔듯이 "connect" 버튼은 connection request가 Pendin.. 2022. 3. 24.
[truffle truffle/contract ganache web3 metamask] web3 사용법 - 웹 브라우저 연결 및 트랜잭션 일으키기 1. "connectToBC" 라는 새폴더를 만든다. 2. 터미널 path를 connectToBC로 들어가 react 시작 $ npx truffle unbox react 3. truffle-config.js - networks에 개발 host 입력 networks: { develop: { port: 8545 }, development: { host:"127.0.0.1", port:8545, network_id:"*" } } 4. ganache 실행 ( 127.0.0.1:8545 서버 실행) $ ganache 5. 컴파일 및 배포하기 $ truffle migrate 6. 터미널 client 폴더로 들어가 @truffle/contract 설치 $ npm install @truffle/contract 7. c.. 2022. 3. 21.
[truffle ganache react metamask] 내 이더리움 계좌의 잔고 web3 + 리액트로 브라우저 웹 상에 띄우기 https://codingpractices.tistory.com/131 [truffle ganache react] 리액트와 연결하기 webStorm 옵흔 1. 새 폴더 생성 "webConnect" 2. truffle 시작하기 $truffle init - > truffle 이 성공적으로 시작되면 아래와 같은 폴더들이 생긴다. 3. contracts 폴더 안 새 파일 "simpleStorage" 생성 및 코.. codingpractices.tistory.com 여기까지 truffle ganache react로 연결을 해놓고 이제 브라우저 상에 현재 브라우저에 연결된 나의 메타마스크 계좌 정보와, 지갑 안의 이더리움 값을 보여주는 것까지 해보기 React는 너~무 오랜만에 해가지고 구글로 검색하면서 했다. 처.. 2022. 3. 17.
[truffle ganache react] 리액트와 연결하기 webStorm 옵흔 1. 새 폴더 생성 "webConnect" 2. truffle 시작하기 (나중에 알게 되었지만 truffle init은 필요하지 않았다. unbox react에서 모두 실행됨) $truffle init - > truffle 이 성공적으로 시작되면 아래와 같은 폴더들이 생긴다. 3. contracts 폴더 안 새 파일 "simpleStorage" 생성 및 코드 작성 contracts 안에 이미 생성되어 있는 Migrations.sol 파일은 삭제하면 안됨 작성 코드 // SPDX-License-Identifier: MIT pragma solidity >=0.4.21 테스트용 공개/비공개키가 10개씩 나온다. 5. truffle로 컴파일하기 $ truffle compile -> biul.. 2022. 3. 17.
truffle unbox react, unhandled rejection : Unhandled Rejection (Error): This contract object doesn't have address set yet, please set an address first. Unhandled Rejection (Error): This contract object doesn't have address set yet, please set an address first. -> react와 truffle, ganache를 동작하다가 나온 에러 해결법 : react 페이지가 뜬 브라우저의 메타마스크 지갑을 localhost로 바꿔주면 된다 !! 나는 Rinkeby 테스트넷에 연결되어 있어서 안되었다. Reference : https://stackoverflow.com/questions/56980736/truffle-unbox-react-unhandled-rejection 2022. 3. 17.
반응형