본문 바로가기

TIL

(45)
TIL) ERC721 활용하여 테스트넷에 NFT 발행하고 OpenSea에서 확인하기 #활용한 tool Remix AWS S3 버킷 openzeppelin #작업순서 Remix에서 openzeppelin library importing contract 작성 compile 및 deploy 이미지 및 속성값 담은 properties.json 작성 AWS S3 버킷에 properties.json 업로드 json 파일의 url 바탕으로 minting openSea testnet에서 확인 #전체코드 contract part // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/utils/Cou..
TIL) Ganache, Truffle, Hardhat, OpenZeppelin #Ganache 블록체인 개발을 위한 로컬 블록체인 네트워크를 제공하는 도구. 블록체인 네트워크 블록이나 트랜잭션 등 확인가능 #Truffle 스마트 컨트랙트 개발을 위한 도구 스마트 컨트랙트 테스트, 컴파일, 배포 등의 기능 제공 블록체인 네트워크에 연결해서 사용 ganache와 연결 가능 #Hardhat ganache + truffle 로컬 블록체인 네트워크를 제공하고, 스마트 컨트랙트 개발을 위한 테스트, 컴파일, 배포 가능 flexible한 테스트 환경을 제공하여 Truffle보다 더 많이 사용됨 #OpenZeppelin 스마트 콘트랙트 코드 구현을 위한 라이브러리 ERC-20이나 ERC-721과 같은 표준 코드를 제공함
TIL) Solidity 기본 문법: 변수 및 데이터 타입, 함수 #변수의 종류 - 상태변수: 컨트랙트 저장소에 영구적으로 저장되는 변수. 보통 컨트랙트 최상위 단에 선언 - 지역변수: 함수가 실행될 때까지만 존재하는 변수. 기본적으로 스토리지에 저장되지만, 레퍼런스 타입일 경우 재정의 가능 - 전역변수: 블록체인 안에서 모두 접근가능하며, 미리 정의되어 있는 특수 변수. block, msg, tx, this 등 #데이터 타입 - value type: bool, uint, int, address, byte, enum - reference type: struct, arrays, string, mapping #value type - 주소(address) - address와 address payable로 나뉨 - address payable: address에 추가 멤버인 t..
TIL) ERC-20 토큰 배포 및 추가기능 구현(OwnerHelper, TokenLock) #ERC-20이란? - ethereum request for comment 20의 약자 - 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙 - 이더리움 네트워크의 개선안을 제안하는 EIPs(ethereum improvement proposals)에서 관리하는 공식 프로토콜 - 이더리움 블록체인을 활용하는 토큰은 ERC-20 기준을 맞춰야 함 #ERC vs EIP - ERC는 기능 표준 - EIP는 개선 제안 #관리자 전용 함수 - OwnerHelper abstract contract는 contract의 구현된 기능과 interface의 추상화 기능 모두를 포함. -> 상속받은 자식객체에서 owner함수와 transferownership 함수 사용 + onlyOwner modifier 사용 // int..
TIL) 이더리움 스마트 컨트랙트 가스비, 스마트 컨트랙트 활용 사례 #가스비 - 가스비는 코드의 종류에 따라 다르게 부과됨 - 스마트 콘트랙트 개발자들은 가스비를 고려하여 효율적으로 코드를 구현해야 함. 스마트 콘트랙트 활용 사례 #보험계약 - AXA, Fizzy - B3i 표준개발 #원격계약 - DocuSign, Visa 자동차 렌탈 #제품의 유통 추적 - wells fargo, brighhann cotton, the commonwealth bank of australia 물류 유통 #저작권 - Binded 저작권 소유증명서
TIL) 블록체인과 튜링완전성 #튜링 머신 - 무한한 저장공간만 있다면 이 세상의 모든 문제를 풀 수 있는 기계를 만드는 것이 가능한데, 이를 튜링 머신이라고 한다. - 튜링 머신은 튜링 완전언어를 기반으로 구현된다. #튜링 완전언어 - 튜링 머신에 넣어야 할 알고리즘을 만들 수 있는 언어 #무한루프 - 튜링 완전언어의 특성에 따른 필수 불가결한 특징으로, 프로그램이 반복해서 돌아가는 것을 의미한다. - 튜링 완전언어를 기반으로 한 머신은 문제가 완전히 풀릴 때까지 반복해서 돌아가며 루프에 빠진다. - 루프는 시간제한이 없기 때문에, 이러한 특징을 악용하면 네트워크의 과부하를 일으킬 수 있다는 단점이 있다. #비트코인의 튜링 불완전성 - 비트코인은 네트워크가 루프에 빠지는 것을 막기위해 튜링 불완전성한 네트워크를 구현하였다. - 비트..
TIL) 방법론 : MVC 패턴 MVC = Model, View, Controller USER가 접속 CONTROLLER가 USER 요청에 따라 MODEL을 호출 MODEL은 DB나 파일과 같은 데이터 소스 제어한 후 그 결과 UPDATES VIEW는 UPDATES된 내용을 USER에게 전달
TIL) (Solidity) Cryptozombies : making the zombie factory #상태변수&정수 부호 없는 정수: uint, 256비트의 부호 없는 정수 부호 있는 정수: int #수학 연산 지수연산 uint x = 5 ** 2; // 5^2 = 5*5 = 25 #구조체 복잡한 자료형 struct Person { uint age; string name; } #배열 //정적 배열 uint[2] fixedArray; string[5] stringArray; //동적 배열 uint[] dynamicArray; //구조체 배열 Person[] people //public 배열 : 다른 컨트랙트들이 people 배열을 읽을 수 있게 됨. Person[] public people #함수선언 function eatHamburgers(string memory _name, uint _amount){..
TIL) IPFS(InterPlanetary FileSystem) 이해 (2) 본 컨텐츠는 Kblock 공식 리서치팀, 케블리님이 Steemit에 작성한 자료를 참고하였습니다. https://steemit.com/kr/@kblock/27-ipfs-interplanetary-file-system-2-ipfs-filecoin #IPFS와 파일코인 1. IPFS가 동작하려면 우선 IPFS에 데이터가 저장되어 있어야 함. 2. 개인의 입장에서 파일을 IPFS에 올리고 보관하는 것은 저장공간의 사용하는 일이기 때문에 보상이 필요. 파일코인(Filecoin)은 1,2를 가능하게 하는 IPFS의 인센티브 레이어 #파일코인의 동작원리 - DSN 파일코인의 동작원리를 알기 위해서는 우선 DSN을 알아야 함. DSN(Decentralized Storage Network)은 파일코인이 활용되는 탈중앙..
TIL) 이더리움 엔진 Geth 활용하여 private network 구축 Geth란 무엇인가? - full ethereum node를 구성하기 위한 tool - Go 언어 기반으로 작성 Getting Started with Geth | Go Ethereum Getting Started with Geth This page explains how to set up Geth and execute some basic tasks using the command line tools. In order to use Geth, the software must first be installed. There are several ways Geth can be installed depending on the operating s geth.ethereum.org Solidty는 많이 들어봤는데 Ge..