본문 바로가기

Ethereum/Solidity3

CrytoZombies_Lesson3_고급 솔리디티 개념 1. 컨트랙트의 불변성 및 외부 의존성 (1)불변성 이더리움 컨트랙트를 배포한 이후에는 컨트랙트는 변경하거나 업데이트 할 수 없습니다. 최초 배포한 코드는 이더리움 블록체인에 영구적으로 존재하게 됩니다. 만약 컨트랙트 코드에 결함이 있는채로 배포했다면 이를 고칠수 있는 방법이 전혀 없게 됩니다. 이것이 바로 솔리디티에 있어서 보안이 굉장히 큰 이슈인 이유입니다. 그러나 이것 또한 스마트 컨트랙트의 한 특징입니다. 누군가가 스마트 컨트랙트 함수를 호출할 때마다, 코드에 쓰여진 그대로 함수가 실행될것이라고 확실 할 수 있습니다. 그 누구도 배포 이후에 함수를 수정하거나 예상치 못한 결과를 발생시키지 못하기 때문입니다. (2)외부 의존성 우리가 이전에 크립토키디 컨트랙트의 주소를 Dapp에 직접써넣었습니다. .. 2019. 8. 16.
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.. 2019. 8. 16.
CrytoZombies_Lesson1_기본문법 1. 컨트랙트 pragma solidity ^0.4.19; contract ZombieFactory { } 모든 Solidity 소스 코드는 "version pragma"로 시작하게 됩니다. 이는 해당 코드가 이용해야 하는 솔리디티 버전을 선언함으로써, 이후에 새로운 컴파일러 버전이 나와도 기존 코드가 깨지지 않도록 예방하는 것입니다. 솔리디티 코드는 컨트랙트 안에 싸여 있습니다. 컨트랙트는 이더리룸 애플리케이션의 기본적인 구성 요소로, 모든 변수와 함수는 어느 한 컨트랙트 안에 속하게 됩니다. 2. 상태 변수 & 정수 pragma solidity ^0.4.19; contract ZombieFactory { uint dnaDigits = 16; } 상태 변수는 컨트랙트 저장소에 영구적으로 저장되는 변수를.. 2019. 8. 16.