사랑하애오
솔리디티 투표 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) :..

article thumbnail
솔리디티 이더리움 리믹스로 SimpleCoin 구현 해보기
Solidity 2022. 2. 11. 13:17

리믹스 솔리디티 온라인 개발 도구인 리믹스 솔리디티를 사용하면 솔리디티 언어를 이용해서 코드를 작성하고 컴파일, 배포 등을 손쉽게 확인해 볼 수 있다. https://remix.ethereum.org/ 솔리디티 코드 몇 줄만으로 간단한 트랜잭션 생성 및 잔고 확인 기능을 구현할 수 있다. ​ 위의 경로로 들어가보면 아래와 같은 메인페이지가 나온다. ​ 처음 들어가면 좌측 상단에 default_workspace라는 워크스페이스가 있을 것이다. 내부 폴더 중 contracts 안에 SimpleCoin.sol 이라는 파일을 하나 만들어주자. ​ SimpleCoin.sol 파일이 생성되면 아래 코드를 작성해보자. (솔리디티 문법에 대한 것은 나중에 크립토 좀비를 이용해서 공부할 예정) pragma solidit..

article thumbnail
솔리디티 Truffle 과 이더리움 기본 설정
Solidity 2022. 2. 11. 11:39

저번 포스팅에서 npm install -g truffle truffle을 설치하였는데 이를 이용해 이더리움 관련 테스트를 진행할 수 있다. 위와 같이 truffle을 쓰고 싶은 디렉토리에서(Solidity로 코딩된) Compile을 해줄 것이다. 그래서 Node.js를 자주 쓰는 우리는 npm init 처럼 truffle init을 이용해 truffle을 초기화할 것이다. truffle -v 일단 그전에 truffle이 잘 설치되었는지 확인을 꼭 해주고 truffle init 을 해주게 되면 // 디렉토리 contracts migrations test // 환경변수 truffle-config.js 이렇게 초기화가 완료된다. 이로써 우리는 truffle에 대해 쓸 수 있는데 친절한 우리 금자씨처럼 이더리움..

article thumbnail
솔리디티 투표앱(Voting App) 만들기(기본 원리)
Solidity 2022. 2. 9. 14:13

https://medium.com/haechi-audit-kr/smart-contract-a-to-z-79ebc04d6c86 주의사항 코드는 짧으니까 무엇을 만들고 어떻게 돌아가는지 알아야한다. 순서 solidity 코드 작성 Voting.sol이라는 파일을 만든다. Voting.sol pragma solidity ^0.8.0; contract Voting{ //후보자들 초기화 string [] public candidateList; constructor(string[] memory _candidateNames) public { candidateList = _candidateNames; } //투표기능 만들기 mapping(string => uint) public voteReceived; //uint의 ..