블럭체인

Ethereum and Solidity: The Complete Developer's Guide - 3장

bonschicken 2024. 11. 2. 00:54
728x90

Smart Contract은 이더리움 블록체인에서 흥미로운 애플리케이션을 만드는데 사용합니다.

 

 

 

이 코드는 스마트 계약이 어떻게 해동해야 하는지 알려주죠

 

스마트 계약에 포함된 몇가지 다양한 속성에 관해 애기 해보죠

 

 

 

 

balance : 잔액있지만 계약 계좌도 있습니다

storage : 작은 보관함 같은거에요 계약과 관련된 데이터를 저장하는 곳 우리가 만드려는 응용 프로그램과 관련 잇어요 

code : 컴퓨터 수준의 코드 다른 사람들이 쉽게 읽기란 거의 불가능합니다

 

계약 은 항상 정확히 뭘 해야 하는지 좋은 생각을 갖고 있어요, 코드와 지시사항이 그 옆에 저장되니까요

 

계약 코드을 작성할 때 솔리디티을 이용해 계약 정의라는 작성 합니다.

 

 

 

솔리디티는 실제 프로그래밍 언어입니다 여러분과 제가 일고 상호 작용하고 이해하기 아주 쉬운 겁니다

 

하지만 스마트 계약 내에서 이더리움 네트워크에서 실행되는 실제 코드는 아니죠 대신에 계약 정의를 가져다가 솔리디키 컴파일러에 적용할 겁니다. 컴파일러가 두 개의 개별 파일을 뱉어낼 거예요.

 

첫번째 것은 바이트 코드가 포함되어 있습니다. 이것이 실제로 이더리움 네트워크에서 사용될 코드죠

이게 계약 계정으로 채워지는 실제 내용이에요

 

두번째는 솔리디티 컴파일러는 응용프로그램 바이너리 인터페이스라는 것도 내놓을 겁니다  abi라고 부릅니다

여기서 이 abi가 정말 중요합니다 배포된 스마트 계약과 상호 작용 할수 있는 응용 프로그램을 쓰는 데 있어서요

 

 

 

 

계약을 배포하고 abi를 얻어낸 다음에는 최종적으로 자바스크립트 코드를 작성할 거에요. 일종의 프런트 엔드나 계약에 대한 실제 사용자 인터페이스로 사용될 코드입니다. 그런데 자바스크립트 코드는 이더리움 블록체인에 배포된 바이트 코드와 아무런 상호작용이 없죠

 

이더리움 블록체인이란 스마트 계약이 존재한다는 걸 기억하세요. 스마트 계약 안에는 바이트 코드를 포함하고 있죠

 

abi는 자바스크립트 코드를 얻기 위한 인터페이스라고 생각하시면 됩니다

 

abi는 보통 아주 쉽게 읽을 수 있는 것으로 끝나죠 여러분과 제가 abi를 쉽게 읽을 수 있는 것 처럼요 계약과 상호 작용할 수 있는 아주 좋은 아이디어를 제공할 거에요

 

abi를 여러번 읽어서 우리가 배포한 스마트 계약 내에서 어떤 함수나 abi를 여러 번 읽어서 우리가 배포한 스마트 계약 내에서 어떤 함수나 데이터 조각을 호출하고 상호 작용할 수 있는지 알 수 있어요