17 ~ 18. SmartContracts, The Solidity Programming Language

BlockChain,NFT,Web3.0 2022. 1. 20. 12:37
반응형

스마트계약은 블록체인에서 애플리케이션을 구축하는데 사용한다 

 

스마트계약 : 계정을 코드로 컨트롤 하는것 

 

스마트 계약 계정에 속한 속성들 

 

field 설명
balance 계정 주인의 이더의 양 (잔액)
storage 이 계약에 대한 저장소 
code 이 계약에 대한 원시 기계 코드 

 

우리가 편집기에서 작성하는 코드는 기계코드로 변환됨 

 

메타마스크에서 만든 계약계정(외부계정: external account)은 account address, public key, private key를 포함한다 

 

동일한 계정을 상용해서 기본네트워크 Ropsten, Kovan, Main, Rinkeby 에 연결할수 있다 

계약 코드를 작성해서 Rinkeby와 같은 네트워크에 배포 한다 

계약을 배포 하면 계약 인스턴스가 생성된다 

 

하나의 계약 소스로 여러번 배포가 가능하다 
클래스와 인스턴스와 매우 유사 하다 

 

계약소스에서는 인스턴스의 행동에 대한 정의가 포함된다 

그런다음 네트워크에 배포 하여 인스턴스를 만들어 낸다 

 

class User{
    setName(name){
        this.name = name;
    }
    getName(){
        return this.name;
    }
}

let user = new User();
user.setName('hong');
user.getName(); //hong

 

예를들어 user인스턴스는 계약 계정과 같다 고 생각할수 있다 (실제 solidity 코드가 아님)

 

우리가 작성하는 solidity 언어를 사용한 코드가 컴파일 되고 배포됨으로 

네트워크에 삽입되고 인스턴스가 생성된다 

 

solidity는 스마트 계약을 작성하기 위해 특별히 고안되었다 

 

계약을 실행하기 위한 여러가지 기능이 포함되어 있다

 

.sol 확장자를 가진다 

강력한 타입 언어이다 

자바스크립트, 파인썬의 영향을 받아 비슷하다 

 

 

실제 프로덕션 애플리케이션에 작성할 계약은 일반적으로 매우 작다 

일단 너무 복잡한것들은 신경쓰지 않아도 된다 

 

그리고 

 

계약과 상호 작용하기 위해 html과 js를 작성할거다 

 

 

ABI : Application Binary Interface 

 

응용 프로그램 이진 인터페이스(Application Binary Interface, ABI)는 응용 프로그램과 운영 체제 또는 응용 프로그램과 해당 라이브러리, 마지막으로 응용 프로그램의 구성요소 간에서 사용되는 낮은 수준의 인터페이스이다.

ABI는 API와 다르다, API가 소스 코드에서 사용된다면 ABI는 바이너리에서 호환이 가능하다는 점이 다르다.

 

계약을 배포 하고 API를 얻어 사용자 인터페이스(여기서는 js+html등을 사용)를 만들어 통신 한다 

즉, 이더리움 네트워크에 배포 되어 있는 계약인스턴스와 통신 하기 위해서 ABI가 필요한것이다 

우리가 배포한 스마트 게약 내에서 호출하고 상호 작용할수 있게 된다 

 

 

 

 

 

반응형

'BlockChain,NFT,Web3.0' 카테고리의 다른 글

24. Testing with Remix  (0) 2022.01.21
Unity + Metamask (Android)  (2) 2022.01.06
Unity + MetaMask (WebGL)  (0) 2022.01.06
Block Header의 6가지 정보  (0) 2021.12.19
Step 04. javascript로 블록 체인 만들기_블록 만들기  (0) 2021.12.17
: