견고하게 계약을 생성하는 방법 - iFour Technolab

견고성이란 무엇인가



Solidity는 블록체인에서 스마트 계약을 작성하고 구현하기 위한 높은 수준의 계약 지향 프로그래밍 언어입니다. Blockchain development companies 미국에서는 Blockchain 프로젝트에 Solidity, Ethereum 및 nodejs를 광범위하게 사용합니다. C++, Python 및 JavaScript의 영향을 받은 Solidity는 원래 Ethereum Virtual Machine(EVM)을 대상으로 설계되었습니다.

스마트 계약이란 무엇입니까



스마트 계약은 블록체인에서 실행되는 소프트웨어 프로그램입니다. 스마트 계약은 블록체인 개발에서 사용자 간에 디지털 통화 또는 토큰을 전송하는 역할을 합니다.

Solidity 계약 코드는 계약 키워드로 시작합니다. 확장자는 .sol입니다.

여기에서는 예를 들어 더하기, 대체, 곱하기, 나눗셈과 같은 기본 수학 연산을 수행하는 하나의 수학적 견고성 스마트 계약을 개발하여 스마트 계약을 작성하는 데 어떻게 Solidity가 사용되는지 설명합니다.


contract Mathematics {

}



이것을 Mathematics.sol이라는 파일 이름으로 저장할 수 있습니다.

Solidity 호출 기능이란



솔리디티 호출 기능은 블록체인에서 아무것도 브로드캐스트하거나 전송하지 않는 계약 기능의 읽기 전용 로컬 호출입니다.

함수는 견고성 계약을 호출하기 위해 Ether를 소비하지 않으며 상수 키워드를 사용하여 식별됩니다.

예제 계약에서는 4개의 수학 연산 모두에 대해 4개의 견고성 읽기 전용 함수를 추가합니다.

자세히 보기: Solidity, Parity, Json-rpc 및 Visual Studio Code의 기본 사항



추가 계약 기능


function getSum(uint a, uint b) constant returns (uint) {
return a + b;     
}



여기서 a와 b는 함수에 대한 매개변수가 주어지고 합계를 반환합니다. 다른 작업과 동일하게 getSub, getMultiplication 및 getDivision이라는 네 가지 함수를 추가합니다. 다음과 같이 전체 연락처 코드를 검토할 수 있습니다.

Solidity 거래란?



트랜잭션은 블록체인에 데이터를 보내거나 쓰는 데 사용됩니다. 가스와 Ether를 사용하여 블록체인에 데이터를 전송합니다.

예제 계약에서 견고성 스마트 계약을 사용하여 간단한 관심을 찾습니다. 거래 기능입니다. solidity에서는 상수 키워드를 함수로 사용할 수 없습니다. 따라서 계약 기능은 다음과 같이 코딩됩니다.


function setInterest(uint a) {
rate = a;
}



트랜잭션에서 값을 반환할 수 있지만 현재 예제에서는 사용하지 않았습니다.

스마트 계약의 이벤트는 무엇입니까



Solidity Events는 계약의 상속 가능한 구성원이며 EVM 로깅 기능을 편리하게 사용할 수 있도록 합니다. 이것은 이러한 이벤트를 수신하는 dapp의 사용자 인터페이스에서 JavaScript 콜백 기능을 "호출"하는 데 사용됩니다.

Solidity 이벤트는 스마트 계약에서 이벤트 키워드로 정의됩니다. 예: 더하기 결과에 대한 수학 계약에 대한 이벤트를 만들고 싶습니다. 구문은 다음과 같습니다.


event eventName(Typeofvariable variablename);



여기서 event는 키워드 식별자이고 sum은 이벤트 이름입니다. setInterest 함수에 이벤트를 추가하여 이제 다음과 같이 표시합니다.


function setInterest(uint a) {
  rate = a;
  InterestSet(rate);
}



스마트 계약의 수정자는 무엇입니까



Solidity Modifier는 스마트 계약을 실행하기 전에 조건을 자동으로 확인하거나 동작을 변경하는 데 사용됩니다. 그래서 custom software development 회사는 수정자를 사용하여 블록체인 계약의 성능을 높입니다.

수정자는 또한 스마트 계약의 상속 가능한 속성이며 상위 스마트 계약에 의해 재정의됩니다. 예를 들어 Division 작업 번호는 0으로 나눌 수 없습니다. 따라서 계약에서 두 번째 숫자가 0보다 크거나 같지 않은지 확인합니다. 그런 다음 구문은 다음과 같습니다.


modifier name(){  …. }



이 예에서 나눗셈 연산에 대한 notzero 검사 수정자는 다음과 같습니다.


modifier notZero(uint a){  
  if(a == 0){
  throw;
  }
  _;
}



여기서 _는 다음 실행을 계속하는 것을 나타냅니다. 이 수정자를 solidity getDivision 함수에 추가하여 결과를 제공하기 전에 함수가 0이 아닌 조건을 확인하도록 합니다.

블록체인 개발자 고용 계획 - 오늘 문의





function getDivision(uint a, uint b) constant notZero(b) returns (uint) {
  return a / b;
}



최종 Solidity 스마트 계약은 다음과 같습니다.


pragma solidity ^0.4.15;

contract Mathematics {

  uint rate;
  event InterestSet(uint a);

  modifier notZero(uint a){  
  if(a == 0){
    throw;
  }
  _;
  }

  function getSum(uint a, uint b) constant returns (uint) {
    return a + b;
  }

  function getSub(uint a, uint b) constant returns (uint) {
    return a - b;
  }

  function getMultiplication(uint a, uint b) constant returns (uint) {
    return a * b;
  }

  function getDivision(uint a, uint b) constant notZero(b) returns (uint) {
    return a / b;
  }

  function setInterest(uint a) notZero(a){
    rate = a;
    InterestSet(rate);
  }

  function getSimpleInterest(uint amount, uint month) constant notZero(amount) notZero(month) returns(uint){
    return  (amount * month * rate)/100;
  }

}



이제 이 컨트랙트를 패리티로 배포하거나 트러플을 사용하여 작동 방식을 확인할 수 있습니다. 이는 Solidity를 시작하기 위한 매우 기본적인 계약입니다. 패리티 및 트러플에서 견고성 계약을 배포하는 방법을 다음 블로그에서 보여드리겠습니다. solidity-by-example에서 더 많은 연락처 예제를 확인할 수 있을 때까지.

좋은 웹페이지 즐겨찾기