TIL41

shnae·2023년 12월 19일
0
post-thumbnail

합의알고리즘: 채굴로 시작해서 동기화하는 전 과정

  • 합의알고리즘이 필요한 이유?
    • 모두가 평등한 상태로 있기 때문에 합의 알고리즘이 필요하다

개인키와 공개키

코인에 대한 소유권을 입증시켜주는 수단. 개인키 & 공개키 쌍.

  • 개인키는 숫자
  • 공개키는 좌표

비트코인 주소

  • HASH160: 1byte=8bit

UTXO 개념

거래의 정의

거래 구조

거래 과정

스크립팅 언어


Solidity

remix

  • 컴파일러 버전이 sol 파일 solidity 버전보다 높아야 한다 -> 잘 확인할 것
  • Auto compile를 체크하면 코드가 자동으로 컴파일된다
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.15;
contract Basic {  
}
  • 가장 기본적인 형태

  • 컴파일을 완료하면 Deploy 탭에서 내가 작성한 sol 파일이 표시된다

전역변수 : 함수 외부(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
  • 문자형 배열: , , ,

EVM OPCODES

https://www.evm.codes/?fork=shanghai

0개의 댓글