![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 22, 2020, 07:50:29 AM |
|
VDS컨센서스 실행 계약 비용 계산 설명 어떤 의미로 스마트 계약의 본질은 바이트 코드이다. 바로 이들이 바이트 코드를 통해 논리 회전 연산 그리고 저장 등 기능을 실현하는 것이다. VDS 제3 대 그룹을 창건한 것을 예로 하면 편찬해 나온 바이트 코드가 42697 바이트이다. 이 안에 초시 설정 등을 포함되지 않아 예를 들면 그룹 이름, 그룹 제도, 그룹 공지 등이다. 계약 창건 부분은 이 안에 제일 비싼 것이다. (GasPrice 곱하기 GasLimit 하면 유호 지출 한 부분을 계산할 수 잇다. 이것이 이더리움과 과 같은 계산 방법이다. ) 42697바이트 안에 VDS의 제3대 그룹 논리, 연산 그리고 데이터 유형을 포함돼서 진일보 범위를 축소하지 않겠다. 네트워크가 파동이 나타난 상황을 제외하고 이들 데이터가 체인에 올리면5600000*0.0000004=2.24Vollar가 필요한다. 그 밖에 그룹 이름, 그룹 제도 그리고 그룹 공지 등 부분도 코드로 전하고 계산해야 한다. 다른 말하면 계약을 성공적으로 실행하기 위해 충분한 Gas을 선불해야 앞으로 소모 과정을 지지할 수 있다는 뜻이다. GasPrice소모한 금액 설정이0.0000004 Vollar이다. 이 것은 최적의 하한 수치이다. 그 다음에는GasLimit을 조정하는 것이다. 이와 같이GasLimit가 상한도 있다. 이것이 우리가 무한하게 대량 내용을 스마트 계약에 놓아 실행할 수 없다. 예를 들면 논리적으로 “모비우스 고리”이와 같은 무한 순환한 내용이 스마트 계약에 놓을 수 없는 것이다. 그 이유는 이것이50000000 Vollar이 상한을 초과하기 때문이다. 스마트 계약을 실행한 과정에서 실행 방법, 복잡한 정도 그리고 여러 가지 수정과 저장한 데이터에 따라 필요한 Gas 수도 다르다.우리가 최적은 방법을 선택할 때도 (“빈자리 함수의 방법이라고 부르기도 한다.) 21000GasLimit가 필요하다. 수수료로 전하면0.0000004 * 21000 = 0.0084 Vollar이 나온다. OTC의 계약 창건하려면 260000 * 0.0000004 = 1.04 Vollar가 필요하다. 실행 계약의 방법은45000 * 0.0000004 = 0.018 Vollar가 필요하다. 그리고 OTC 계약의 비용이 정밀도가 0.001Vollar정도이다. 중요한 것이 우리가 단독적으로 일치한 연산 방법을 사용하고 바이트 코드의 값을 얻을 수 없어 연산 방법에 있는 로직이 복잡하는지도 고민해야 한다. 그리고 네트워크 파동 등 특수한 상황에 주는 영향도 생각해야 한다. 당전 외부 호출 계약의 방법에 관함 당전 그룹의 인터페이스가 그룹 이름, 그룹 공지, 그룹 제도, 가입한 비용, 거래 방식(이 것이 바로 방장이 btc을 이 그룹의 거래 화폐로 설치한 것이다. 이 것이 변할 수 있는 것이다. 그리고 실제적으로 거래가 성립한 방식을 영향을 주지 않고 한 약속으로 생각할 수 있다. ), 그룹에 가입한 것이 방장의 동의가 필요하는지, 방장이 입방 신청을 거절하기, 방장이 그룹 멤버를 삭제하기, 대량으로 심사하여 그룹에 가입하기, 그룹 멤버의 인수 상한을 제고하기, 개인 가입 신청, 개인 가입 신청을 취소하기, 개인 그룹에 튀하기, 그룹 방장이 그룹 담보금을 증가하기, 방장이 그룹 담보금을 인출하기 등이다. 위에 언급한 모든 인터페이스가 다 계약 비용을 지불해야 한다. 그런데 조회 중류의 인터페이스가 계약 비용을 내지 않아도 된다. 그룹 이름을 예를 들면 그룹 이름이 “나*100”라면 이 조각이 A로 기록하면 이루진 코드 사이즈는 841바이트이고 필요한 Gas가 271338이다.(Gas는 비용을 계산한 방법이고 계약을 위해 비용을 계산한 방식이다. Vollar가 최소한 단위가 shatoshi이다. 0.000004가 40shatoshi을 대표한다. 271338는 271338개 40shatoshi을 대표한다.) 수수료는 271338*0.0000004=0.1085352Vollar이다. “B”의 조각 기초 위에 그룹 이름을 “나”로 다시 수정하면 이 조각이 “C”로 표시한다. 그럼 소비한 gas가 33260이다. 수수료는 33260*0.0000004=0.0013304Vollar이다. 이를 통해 한 결론을 낼 수 있다. 새 내용이 원래 내용과 차이가 크면 수수료가 높으며 새 내용이 원래 내용이 차이가 크지 않으면 수수료가 낮을 수 있다. 결론 VDS의 스마트 계약이 이더리움의 스마트 계약의 원리가 같아 이더리움의 스마트 계약이 모든 계약을 실행한 비용이 다 정확하게 계산하게 하는 것을 보장할 수 없다. 그리고 예 계산 치가 항상 실제적으로 소비한 비용에 비해 높다. 당전이 그룹 창건한 비용이 2Vollar 정도이다. 이 문제가 진일보 정간하면 어떤 단일한 저장만 변할 수 있는 인터페이스를 빠져야 한다. 예를 들면 그룹 이름 설치, 그룹 제도, 그룹 공지 등 재사용 인터페이스를 통해 개선을 한다. OTC 계약의 창건은 일반적으로 개선할 수 없다. 개선 가능한 것이 계약 인터페이스 호출 등이다. 예를 들면 대금 확인 등 인터페이스가 있다. 이 것이 정확하게 계산할 수 있다. 비용이 약 0.02Vollar/번이다.
|