목록분류 전체보기 (70)
별은블로그
JLPT N3는 획득한 상태고N2에 도전하고 있습니다.2018/12/2일 시험입니다. 간간히 올리겠습니다.
보통 알고리즘을 평가할 때 빅오표기법을 사용한다.하지만 솔리디티에서는 빅오보다 GAS가 중요하다. - opcode마다 소비되는 가스가 다름 1. 컨트랙을 배포할 때의 비용- 주석, 변수이름, 타입이름은 가스를 소모하지 않음- 불필요한 코드정리 필요 2. 컨트랙 내의 함수를 불러올 때의 비용- 비싼연산을 최대한 줄이기- SSTORE : 비용이 비싸다. storage의 상태를 변경할 때마다 사용됨.=> 해결법 : 로컬변수를 이용해서 계산을 다한 후 마지막에 storage변수를 변경한다.- for문 사용횟수 최소화- 문자를 저장할 때 bytes32 타입을 사용하는 것(고정된 크기의 배열)=> 가스비 절약 : 이더리움가상머신은 32bytes 타입에 최적화 되어 있음(256bits에 맞춰져 있기 때문에)3. 배열..
가스란? - 가스는 트랜잭션을 수행하는데에 있어 네트워크에 대한 수수료이다. - 채굴자들에게 보상금으로 지급된다. 수수료 내는 예시) - 다른 계정으로 돈을 보낼 때 - 스마트 컨트랙 배포할 때 - 함수에서 상태변수에 변화를 줄 때 - 함수를 실행 중인 계정에서 가스비를 지불한다. - 가스비도 eth를 사용한다. 가스단위를 사용하는 이유 - ETH는 화폐변동성이 있다. - 가스는 변동성이 거의 없다. 가스의 가격단위 : gwei 가스비용은 함수의 복잡성에 따라 결정 연산에 소모되는 비용 == 옵코드(opcode)- 네트워크 상태, 컴퓨팅 자원에 따라 비용결정 ethgasstation.info - 가스가격의 평균가를 볼 수 있는 사이트converter.murkin.me - 이더리움 단위변환 사이트 가스가격..
remix.etherium.org 사용 Environment - JavaScript VM, injected Web3, Web3 Provider 3가지가 제공됨 - JavaScript VM- 버츄얼머신으로 간단한 코드를 실행하며 빠른디버깅을하는 특징이 있다. - injected Web3- 메타마스크를 이용한다. - Web3 Provider- 가나슈나 게스를 이용한다. deploy - 컨트랙을 실행한다. 디버깅 - step over- 함수가 있을 때 함수넘어감 - step into- 함수가 있을 때 함수 안으로 들어감 - breakpoint 설정가능 instruction - 바이트코드가 옵코드(opcode)로 변환되어 표시되는 곳 solidity locals - 현재 진행 중인 곳의 지역변수 solidity..
솔리디티의 컨트랙? 자바의 클래스와 비슷한 개념이라고 생각하면 될 것 같다. 컨트랙의 구조 pragma solidity + 버전정보contract mycontract(컨트랙의 이름)상태변수 : 클래스의 멤버변수라고 생각하면 될 것 같다.생성자 생성 : constructor() public{ }함수 : 자바와 자바스크립트를 섞은 느낌 문법구조 접근제어자가시성(Visibility) - 4가지로 구분된다.external - 외부컨트랙만 접근가능(같은 함수 내부에서 호출되면 안됨) - 상태변수는 external 불가능internal - 컨트랙 내부호출가능 - 상속받은 컨트랙도 호출가능 - 상태변수는 디폴트로 internal 선언public - 컨트랙 내부호출 가능 - 상속받은 컨트랙도 호출가능 - 외부컨트랙도 ..