강의 영상 - Solidity를 사용한 이더리움 블록체인 개발자 부트캠프 (2022)
: https://www.udemy.com/course/solidity-ethereum-bootcamp/learn/lecture/31207252#questions
강의 자료 : https://ethereum-blockchain-developer.com/003-first-smart-contract/01-setup-remix/
솔리디티 : https://remix.ethereum.org/
Remix - Ethereum IDE
remix.ethereum.org
개발
- pragma solidity ^0.8.1; : 솔리디티 버전 설정
- 배포와 트랜잭션 실행탭
Injected Web3 선택 : 메타마스크 리믹스 ID 연결
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.1; //솔리디티 버전
contract MyContract {
string public myString = "Hello World!";
}
- 리믹스 Deploy 클릭 -> 메타마스크 계정에서 연결된 계정으로 계약 배포
- 이더 스캔 : 거래 성사됨 확인, 트랜잭션 채굴됨
- 리믹스 : 새 트랜잭션 인스턴스 생김,
myString : 스마트 계약과 상호작용 할 수 있는 버튼
모든 공개 변수가 자동으로 생성되고 솔리디티 내부에서 기능을 얻음(누르면 Hello World 출력됨)
이론
- 스마트 컨트랙트 : 닉 사보가 1994년 처음 만듦, 자동 트랜잭션을 부름, 블록체인에서 작동하는 코드의 일부
- 트랜잭션을 발송할 때
: 해당 트랜잭션이 채굴됨 -> 상태 변화 (트랜잭션+채굴을 통해 이루어짐)
** 트랜잭션을 발송했다고 해서 상태가 바뀌는 것이 아님. 채굴이 되어야함.
- 스마트 컨트랙트 프로그래밍 언어
: 모두 컴파일 되어서 실제로 블록체인에 EVM bytecode 보냄
트랜잭션 전송하고 데이터 필드가 채워진 걸 봤을 때 전송된건 컴파일된 코드 -> 블록으로 만들어져 블록체인에 들어감
- 스마트 컨트랙트
-> 바이트 코드로 배포하여 블록체인에서 실행 (EVM-많은 블록체인이 트랜잭션 기반에서 유사한 바이트 코드를 실행하려고 복사해감, 튜링되어있음)
-> 네트워크의 모든 참여중인 노드가 해당 트랜잭션 실행
-> 블록체인의 모든 노드가 블록체인의 사본을 가지고 있어서 트랜잭션이 유효한지 확인
=> 참여하는 모든 노드가 하나의 원장을 공유
- 솔리디티
- 함수, if/else, Loops(for,while), DataTypes((U)Int, Boolean,Array/Struct,Mapping,Address,No Floats), Inhertiable, modifiers, Imports
contract MyContract {
string public myString = "Hello World!";
}
- 솔리디티 문서에서 컨트랙트는 대문자로 시작
- 중괄호 안 : 스토리지 변수, 이벤트, 변경자, 함수, 생성자 등등
'블록체인 > 블록체인 개발' 카테고리의 다른 글
[이더리움 블록체인 개발] Solidity_Simple Variables (0) | 2022.08.01 |
---|---|
[이더리움 블록체인 개발] 솔리디티 변수 치트 시트 (0) | 2022.07.18 |
[이더리움 블록체인 개발] 블록체인 노드 (0) | 2022.07.18 |
[이더리움 블록체인 개발] 블록 연결 방식 (0) | 2022.07.18 |
[이더리움 블록체인 개발] 이더리움 트랜잭션, 트랜잭션 서명 (0) | 2022.07.18 |