합의알고리즘
: 채굴로 시작해서 동기화하는 전 과정
코인에 대한 소유권을 입증시켜주는 수단. 개인키 & 공개키 쌍.
// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.15; contract Basic { }
전역변수 : 함수 외부(Whole Chain), 전체 접근 가능 => 자기 영향력의 활동 범위가 전체에 해당
상태변수 : contract 안에서 선언된 변수 => 어디서든 따올 수도, 접근할 수도 있음
- 값을 변경하는 것이 비싼 편이다. 모두가 다 보는 변수이기 때문.
지역변수 : 함수 내부(function), 외부에서 접근 불가 => 자기 영향력의 활동 범위가 함수 안에만 해당
pure
지역변수만 있을 때
view
값을 읽을 때
- 상태 변수를 변경시키는 경우, 사용할 수 없다
- view, pure는 가스비를 사용하지 않는다
- 상태 변수를 변화시키는 경우에만 가스비를 지불한다
storage: 상태변수 저장
memory, calldata: 상대적으로 휘발성이 있는 변수가 저장된다 ex) string, mapping, bytes(string is a special form of bytes; bytes is a special form of array)
hex data is odd-length
array
같은 자료형만을 담는다
delete
: length를 유지하면서 n번째 요소를 삭제, 즉 0 으로 변경한다.
array[n-1]로 n번째 요소 읽어오기.
- 초기화 = 값을 초기값으로 변경한다 (숫자 0, 문자 빈칸)
정적 배열 - 길이를 변화시키는 예약어를 사용할 수 없다
push
,pop
사용불가 - 오류뜸ㅁㅁsetLetter
,setNumber
,delete
등은 사용할 수 있다
동적 배열 - 길이제한 없음
초기값
숫자형은 0으로 초기화되고, 문자형은 빈칸으로 초기화된다
- 숫자형 배열: 0,0,0,0
- 문자형 배열: , , ,