: 스마트 컨트랙트를 구현하기 위한 컨트랙트 기반의 언어이다. Solidity는 c++, python, javascript의 영향을 받아 만들어졌다. Ethereum Virtual Machine(EVM)에서 구동되도록 설계되었다.
정적 타입이며, 상속, 라이브러리 그리고 복잡한 사용자 정의 자료형을 지원한다.
pragma solidity >=0.4.0 <0.6.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
첫줄은 solidity 0.4.0버전을 기반으로 작성되었다는 것을 뜻하며, 이후 버전(0.6.0)까지도 정상 동작 가능하다
Solidity 관점에서 컨트랙트란 무수한 코드들과 데이터가 Ethereum 블록체인의 특정 주소에 존재하는 것이다.
uint storedData;는 uint(256비트의 부호없는 양의 정수) 타입의 storedData로 불리는 변수를 선언한 것이다.
Ethereum에서, 변수들은 컨트랙트에 포함되어 있으며 set과 get 함수로 변수의 값을 변경하거나 조회할 수 있다.
모든 지시자(컨트랙트, 함수, 변수 이름들)는 ASCII 문자열로 제한됩니다. UTF-8로 인코딩된 데이터도 string 변수로 저장할 수 있습니다.
[참고]https://solidity-kr.readthedocs.io/ko/latest/introduction-to-smart-contracts.html