본문 바로가기

solidity

Ethereum_(1)이더리움 네트워크 만들기 해당 포스트의 docker은 아래 출처에서 다운받아 사용하였습니다. https://hub.docker.com/r/pjt3591oo/ethereum-geth " 이더리움 컨테이너 생성 " $docker run -it --name ethereum.test p 8545 : 8645 -p 30303:30303 pjt3591oo/ethereum-geth:1.90 /bin/bash ethereum.test라는 이름을 갖은 컨테이너를 생성합니다. docker에서 image는 프로그램을 의미하고, 컨테이너는 image를 통해 만들어진 실제 동작하는 프로세스를 의미합니다. run명령어를 사용하여 컨테이너를 생성합니다. run 명령어는 기본적으로 다음과 같은 형식으로 쓰여집니다. $docker run 이미지의 REPOSI.. 더보기
Solidity _(1)Voting Program 투표 smart contract를 만들어 보겠습니다. 해당 컨트랙트의 설계는 다음과 같이 할 것입니다. 1. 투표 후보자는 byte형식으로 입력할 것입니다. 2. 후보별 총 득표수를 볼 수 있습니다. 3. 특정 후보에게 투표하면 특정 후보의 득표수가 1 증가합니다. 4. 후보자 이외의 자에게 투표하면 함수가 실행되지 않도록 합니다. [Step1] pragma solidity ^0.5.2; contract Voting{ mapping (bytes32 => uint256) public votesReceived; bytes32[] public candidateList; 1행 : 솔리디티 0.5.2 버전을 선언합니다. 2행 : Voting이라는 이름을 갖은 컨트랙트를 만듭니다. 3행 : 먼저 votesRecei.. 더보기
CrytoZombies_Lesson3_고급 솔리디티 개념 1. 컨트랙트의 불변성 및 외부 의존성 (1)불변성 이더리움 컨트랙트를 배포한 이후에는 컨트랙트는 변경하거나 업데이트 할 수 없습니다. 최초 배포한 코드는 이더리움 블록체인에 영구적으로 존재하게 됩니다. 만약 컨트랙트 코드에 결함이 있는채로 배포했다면 이를 고칠수 있는 방법이 전혀 없게 됩니다. 이것이 바로 솔리디티에 있어서 보안이 굉장히 큰 이슈인 이유입니다. 그러나 이것 또한 스마트 컨트랙트의 한 특징입니다. 누군가가 스마트 컨트랙트 함수를 호출할 때마다, 코드에 쓰여진 그대로 함수가 실행될것이라고 확실 할 수 있습니다. 그 누구도 배포 이후에 함수를 수정하거나 예상치 못한 결과를 발생시키지 못하기 때문입니다. (2)외부 의존성 우리가 이전에 크립토키디 컨트랙트의 주소를 Dapp에 직접써넣었습니다. .. 더보기
CrytoZombies_Lesson2_심화문법 1. 매핑과 주소 (1)주소 이더리움 블록체인은 은행 계좌와 같은 계정들로 이루어져있습니다. 계정은 이더리움 블록체인상의 통화인 '이더'의 잔액을 갖고있습니다. 은행 계좌에서 다른 계좌로 돈을 송금할 수 있듯, 계정을 통해 다른 계정과 이더를 주고 받을 수 있습니다. 주소는 특정 계정을 가리키는 고유 식별자로 다음과 같이 표현됩니다. 0x0cE446255506E92DF41614C46F1d6df9Cc969183 (2)매핑 매핑은 키-값(key-value)저장소로, 데이터를 저장하고 검색하는데 이용됩니다. pragma solidity ^0.4.19; contract ZombieFactory { event NewZombie(uint zombieId, string name, uint dna); uint dnaD.. 더보기
CrytoZombies_Lesson1_기본문법 1. 컨트랙트 pragma solidity ^0.4.19; contract ZombieFactory { } 모든 Solidity 소스 코드는 "version pragma"로 시작하게 됩니다. 이는 해당 코드가 이용해야 하는 솔리디티 버전을 선언함으로써, 이후에 새로운 컴파일러 버전이 나와도 기존 코드가 깨지지 않도록 예방하는 것입니다. 솔리디티 코드는 컨트랙트 안에 싸여 있습니다. 컨트랙트는 이더리룸 애플리케이션의 기본적인 구성 요소로, 모든 변수와 함수는 어느 한 컨트랙트 안에 속하게 됩니다. 2. 상태 변수 & 정수 pragma solidity ^0.4.19; contract ZombieFactory { uint dnaDigits = 16; } 상태 변수는 컨트랙트 저장소에 영구적으로 저장되는 변수를.. 더보기
CryptoZombies_Epilogue 크립토좀비로 Solidity를 학습하고 복습한 내용을 포스팅합니다. 시작 - 2019/07/23 화 https://cryptozombies.io/ko 더보기