PDAO위키
최근 변경
최근 토론
임의 문서
도구
최근 변경
State Machine
(편집 요청)
[알림]
문서를 편집할 권한이 없기 때문에 편집 요청으로 이동되었습니다.
편집 권한이 부족합니다. 로그인된 사용자 OR geoip:KR(이)여야 합니다. 해당 문서의
ACL 탭
을 확인하시기 바랍니다.
닫기
RAW 편집
미리보기
=== 비트마스크 최적화 === 이중 mapping은 검증당 SLOAD 2회가 필요하다. 비트마스크를 사용하면 SLOAD 1회 + 비트 연산으로 줄일 수 있다.[*6 Ethereum Yellow Paper. [[https://ethereum.github.io/yellowpaper/paper.pdf|Ethereum: A Secure Decentralised Generalised Transaction Ledger]]. Appendix G. Fee Schedule.] {{{ mapping(Stage => uint8) private transitionMap; // AwaitingPayment -> Funded(bit 1) 허용 transitionMap[Stage.AwaitingPayment] = 1 << uint8(Stage.Funded); function transitionTo(Stage next) internal { require(transitionMap[currentStage] & (1 << uint8(next)) != 0); currentStage = next; } }}} ||<tablealign=center><tablewidth=80%><tablebordercolor=#a2a9b1><tablebgcolor=#f8f9fa> '''방식''' || '''가스 비용 (검증 1회)''' || '''적합한 경우''' || || 이중 mapping || ~4,200 gas (SLOAD × 2) || 가독성 우선 || || 비트마스크 || ~2,100 gas (SLOAD × 1) || 호출 빈번, 가스 최적화 필요 || || 선형 nextStage() || ~200 gas (연산만) || 순차 전이만 있을 때 ||
요약
문서 편집을
저장
하면 당신은 기여한 내용을
CC BY-SA 4.0
으로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이
동의는 철회할 수 없습니다.
비로그인 상태로 편집합니다. 로그인하지 않은 상태로 문서 편집을 저장하면, 편집 역사에 본인이 사용하는 IP(216.73.217.42) 주소 전체가 영구히 기록됩니다.
저장
닫기
Liberty
|
the tree