사랑하애오
이더리움 솔리디티 기초 샘플
BlockChain/이더리움 2023. 9. 4. 13:14

아래는 My First Contract라는 Solidity Smart Contract Example입니다. 컨트랙트는 두 가지 변수(이름과 나이)를 Set하고 Get하고 있습니다. Setter와 Getter의 기본을 배우기 위해 아래 컨트랙트를 테스트 해보십시오. // SPDX-License-Identifier: MIT pragma solidity >=0.8.6

article thumbnail
ERC20 기반 나만의 FT(Fungible Token) 만들기
BlockChain 2023. 1. 28. 16:47

이번 포스팅에서는 remix에서 진행하겠습니다. 다음 포스팅에서는 VSCODE와 truffle, openzeppelin을 활용해 진행하겠습니다. 코드만 보시겠다는 분들은 5. 나만의 토큰 만들기 로 넘어가주세요. 간단하게 작성한 컨트랙트입니다. 참고바랍니다. 1. 리믹스에 접속 주소: https://remix.ethereum.org/ Remix - Ethereum IDE remix.ethereum.org 2. 컨트랙트 파일 생성 '나만의_토큰_이름.sol' 3. 라이센스 설정 및 컴파일러 버전 설정 // SPDX-License-Identifier: MIT pragma solidity >=0.8.0 a) return (false, 0); return (true, a - b); } } /** * @dev R..

article thumbnail
솔리디티 Truffle & React 서명방식 3가지
Solidity 2022. 3. 7. 15:36

솔리디티 코드를 배포하면 하나의 주소를 반환해준다. '서명'이라는 단계가 존재함 서명 서명: 블록체인 네트워크의 컨트랙트를 사용하기 직전에 나오는 확인받는 절차임 방식 메타마스크를 통해 사용자가 '확인'버튼을 눌러서 직접 서명하는 방식 (지갑을 통해 서명하는 방식)(저번 시간에 했던 방식) 사용자가 직접 서명하지만 Server를 거쳤다가 서명하는 방식 서명하기 전에 백엔드 서버에서 DB를 거쳐서 정보를 저장하고 프론트에 '확인'버튼을 누르도록 한다. 서버에서 서명까지 완료하는 작업 사용자는 메타마스크가 필요가 없다. 서명할 필요가 없어서. 서버가 바로 블록체인 네트워크에 뿌리고 그리고 사용자에게 서버가 정보르 전달해준다. 흔히 거래소임. 필요한 데이터 (어디에 넣어야 하는지) 비밀키가 필요함. 트랜잭션을..

솔리디티 투표 DApp(고급)
Solidity 2022. 2. 25. 12:13

이전 포스팅에서는 html, css, js(jQuery)로 투표 DApp을 구현했는데 이번에는 리액트로 구현해보겠습니다. ReactJS 프로젝트 설정 mkdir VotingDapp-React cd VotingDapp-React truffle unbox react . 트러플 모듈 중 하나인 unbox를 활용해 쉽게 구조를 잡을 수 있습니다. 위와 같은 방법 이외로는 npx(node package execute) 혹은 yarn을 활용해 npx create-react-app VotingDapp-React or yarn create react-app VotingDapp-React 로 React앱을 만들고 cd VotingDapp-React truffle init 이렇게 두번에 걸쳐 만들어야 하기 때문에 위의 방..

article thumbnail
솔리디티 투표 DApp(중급)
Solidity 2022. 2. 24. 15:21

스마트 계약과 상호 작용하고 자체 스마트 계약을 배포하고 계약 주소를 사용하여 상호 작용하는 고급 전자 투표 dApp을 구축합니다. 이 dApp을 개발하기 위해 우리는 Trufflesuite 프레임워크를 계속 사용할 것입니다. 참고로 Trufflesuite 는 EVM 호환 블록체인에서 분산 애플리케이션(dApp)을 시작하기 위한 툴킷입니다. Truffle을 사용하면 스마트 계약을 작성 및 Compile하고 Migration을 실행하여 계약을 배포하고 배포된 계약과 상호 작용할 수 있습니다. 이 포스팅은 EVM(Ethereum Virtual Machine)의 Ganache와 MetaMask와 함께 Truffle을 사용하는 방법을 썼씁니다. 요구 사항 NodeJS v8.9.4 이상. 함께 설치할 수 있는 트..

article thumbnail
솔리디티 OpenZeppelin & Ropsten 테스트넷 배포
Solidity 2022. 2. 17. 13:10

기본 세팅 ganache metamask truffle init truffle-config.js 수정하기(네트워크 부분) openzeppelin 블록체인은 불변성이 있다. 하지만 오픈 제펠린을 통해서 컨트랙트를 수정할 수 있다. proxy contract나 logic contract를 수정할 수 있다. 그러나 함수호출을 abi를 통해서가 아닌 직접 호출로 처리하는 방법을 알아야 사용이 용이하다. GAS 수수료를 소비자가 아닌 smart contract 소유자가 내는 것으로 바뀌었다. 기본적인 함수들이 여기에 구현이 잘 되어 있다. MEW 연결 my ether wallet https://www.myetherwallet.com/ 여기서 메타마스크를 연결하게 될 것이다. 나는 여기서 0이 떴지만 smart c..

article thumbnail
블록체인, 솔리디티 ERC-20 토큰 만들기 (직접 코딩해서)
Solidity 2022. 2. 15. 15:03

토큰 만드는 방법 직접 개발(규격 그대로 코딩하는 행위) 기존 있던 코드를 응용해서 (솔리디티의) 라이브러리 사용 메인넷까지 자체 개발 ->알트코인 eip20 규격의 함수들 https://academy.binance.com/ko/articles/an-introduction-to-erc-20-tokens#what-can-erc-20-tokens-do 여기에 기본 함수들에 대해 잘 설명이 되어 있다. totalSupply function totalSupply() public view returns (uint256) 콘트랙트가 보유하고 있는 토큰의 전체 공급량을 반환한다. balanceOf function balanceOf(address _owner) public view returns (uint256 bal..

article thumbnail
블록체인 ERC-20 토큰 만들기(이더리움 테스트넷)
Solidity 2022. 2. 14. 12:46

Block구조 이더리움 Block Header 이더리움 블록헤더의 구성요소 부모해시(parentHash) : 부모 블록의 해시값 엉클해시(uncleHash) : 현재 블록의 엉클 블록들의 해시값 주소(beneficiary) : 채굴 후 해당 트랜잭션의 수수료를 받을 계정 주소 상태루트(stateRoot) : 계정의 상태정보가 모여있는 머클 패트리시아 트리의 루트 노드 해시값 트랜잭션루트(transactionsRoot) : 블록의 모든 트랜잭션에 대한 머클트리의 루트노드 해시값 영수증루트(receiptsRoot) : 해당 블록 내 모든 트랜잭션에 대한 일종의 영수증 머클트리의 루트노드 해시값 로그블룸(logsBloom) : 로그 정보를 사용하는데 필요한 32바이트 블룸필터 난이도(difficulity) :..