BSV v1.0.8(베타) & mAPI v1.3.0(베타), 업그레이드 릴리즈

By Press Release Published: 5월 11, 2021
2-upgrades-released-simultaneously-BSV-v1.0.8-(Beta)-&-mAPI-v1.3.0-(Beta)

비트코인 SV 팀에서 업그레이드 두 개를 동시에 출시했습니다.

대상은 다음과 같습니다.

  1. 비트코인 SV 노드 소프트웨어 v1.0.8 베타 업그레이드 릴리즈
  2. mAPI v1.3.0 베타 릴리즈

비트코인 SV 노드 소프트웨어 v1.0.8 업그레이드(베타 릴리즈)

이번 버전 1.0.8(베타 릴리즈)는 버전 1.0.7.1에서 업그레이드하는 것을 적극 권장합니다. 이번에 출시된 새로운 버전은 mAPI 또는 사용자 지정 응용 프로그램과 같은 원격 엔드포인트를 이용한 이중 지출 시도를 보고하는 기능을 지원합니다. 또한 이번 버전에서는 종속 처리 시 복잡한 그래프 처리에 관한 성능이 크게 개선되었습니다.

세부 정보

  1. 이중 지출 알림을 사용하는 거래 지원: 이중 지출 입력이 감지되면 특정 엔드포인트로 HTTP 형식의 알림이 전송됩니다. (자세한 내용은 https://github.com/bitcoin-sv-specs/protocol을 참고해 주십시오)
  2. 새로운 getorphaninfo RPC가 적용됩니다.
  3. 새로운 verifyScript RPC가 적용됩니다.
  4. 최신 TSC와 일치하는 새로운 getmerkleproof2 RPC가 적용됩니다.
  5. getsettings RPC 출력부에 maxstackmemoryusageconsensus 매개변수가 추가되었습니다.
  6. sendrawtransaction 및 sendrawtransactions RPC는 이미 알려진 거래에서도 dontCheckFees와 함께 사용할 수 있습니다.
  7. sendrawtransaction 및 sendrawtransactions RPC가 확인되지 않은 부모 목록을 선택적으로 반환할 수 있게 수정되었습니다.
  8. 더스트 정의에 사용하는 새로운 설정 매개변수 dustlimitfactor가 추가되었습니다. *
  9. 더스트 반환 처리를 지원합니다. *
  10. 비동기형 작업의 기본 최대 유효성 검사 기간을 조정해 체인 및 긴 그래프를 잘 처리할 수 있습니다.
  11. 상위 카운트 대신 상위 계수를 사용하도록 알고리즘을 변경합니다.
  12. 연결 없는 풀에서 릴리즈 속도가 향상되었습니다.
  13. cs_main 프로세싱 성능이 향상되어 성능이 더욱 개선되었습니다.
  14. 체인 유효성 검사 방식이 개선되었습니다.
  15. 결과값이 10,000 이상을 지니는 계수 내 메모리 풀 내 상위 체인일 경우 거래를 허용하지 않습니다. 과거 수치는 거래 1,000건에 대해 작동했습니다.
  16. maxorphantxsize 구성 매개변수의 기본값이 1GB로 변경되었습니다.
  17. 수집한 maxcollectedoutpoints 구성 매개변수는 더 이상 사용하지 않으므로 제거되었습니다.
  18. STN이 재설정되었습니다.

*추가 노트:

  1. 새로운 명령줄 옵션: dustlimitfactor를 사용해 더스트를 정의할 수 있습니다.

지금까지 거래 출력 금액과 그에 상응하는 수수료 사이의 최소 비율은 3/1이었습니다. 이 조건을 충족하지 않을 경우 해당 거래는 “더스트”로 간주하여 유효성 검사 중 거부 판정을 받았습니다.

이번에 추가한 인수는 새로운 “-dustlimitfactor” 옵션(백분율)으로 구성됩니다. 기본값은 전과 동일한 300%지만 300% ~ 0% 사이의 값으로 설정할 수도 있습니다.

dustlimitfactor의 값이 0일 경우 거래 출력 시 더스트로 간주하지 않습니다.

더스트의 임계값을 결정하는 공식은 다음과 같습니다(정수 산술).

s = 거래 출력 직렬화 크기

d = dustlimitfactor, 값은 0 ~ 300 사이이며, 기본값은 300

r = dustrelayfee, 기본값은 default-minrelaytxfee이며, v1.0.8 기준 250

m = 148, 사용할 수 있는 최소 입력 바이트

d * (r * (s + m)/1000)) / 100

dustlimitfactor로 100으로 나눈 값이 백분율 값을 지정함에 유의하세요.

: 출력 크기가 34바이트인 일반 거래의 경우, 수식 적용 시 임계값은 135 사토시가 됩니다.

d = 300

s = 34

r = 250

임계값 = (300 * (250 * (34 + 148)/1000)) / 100 = 135

부동소수점 연산을 사용할 경우 동일 공식 적용 시 임계값은 136.5 사토시가 됩니다.

즉 1.0.8의 기본 매개변수 설정에서 일반적인 거래 시 출력은 최소 135 사토시 이상의 가치가 있어야 더스트로 간주되지 않습니다. 반올림으로 dustlimitfactor 및 dustrelayfee가 매우 낮을 경우 예제 거래에 의해 계산된 더스트 임계값은 0이 됩니다.

  1. 9더스트 반환 처리

신규 처리 방식인 더스트 반환 처리를 허용할 수 있도록 거래 유효성 검사가 완화되었습니다. 이 신규 처리 유형은 지갑 더스트화 공격에 대응하기 위한 새로운 방법으로 수수료를 통해 채굴자에게 더스트를 기부할 수 있도록 돕습니다. 실제로 참여할 수 있는 출력값으로부터 지갑과 UTXO 데이터베이스를 삭제할 수 있어 네트워크에도 더 경제적입니다. 더스트 공격을 수행하는 인센티브를 완벽히 제거하는 동시에,

다음 조건 충족 시 거래가 더스트 반환 처리로 간주됩니다.

  • 거래는 단일 출력값(값 0)을 가집니다.
  • scriptPubKey 스크립트는 다음을 따릅니다.

OP_FALSE OP_RETURN: n개의 ‘더스트’를 반환합니다.

n = 프로토콜 ID 길이값, 즉 ‘더스트’ 문자열 크기입니다.

  • 표준 혹은 설정된 모든 입력값은 다름 매개변수 설정을 갖습니다.
    -acceptnonstdconsolidationinput=1 (기본값: 0)
  • 비표준형 거래를 허용해야 하며, 다음 구성 설정을 따라야 합니다.
    -acceptnonstdtx=1 (기본값: 1)

더스트 반환 처리 는 통합 처리와 다음 두 가지 구성 매개변수를 공유합니다.

  • -acceptnonstdconsolidationinput (기본값: false)
  • -minconsolidationfactor (기본값: 0이 아닌 값이어야 합니다. 통합 인수를 0으로 설정하면 통합 처리 및 더스트 반환 처리 역시 비활성화됩니다.)

더스트 반환 처리 예:

{
‘txid’: ‘7a234eaa8615858e7b59cc46820fb71940fa9b1fd2cbac6c4ca3efc33767c6dc’,
‘hash’: ‘7a234eaa8615858e7b59cc46820fb71940fa9b1fd2cbac6c4ca3efc33767c6dc’,
‘version’: 1,
‘size’: 226,
‘locktime’: 0,
‘vin’: [
{
‘txid’: ‘471e1070d48faf20b599b2291c5c7550f9152d6e3549987d85dae82f2e96e93f’,
‘vout’: 0,
‘scriptSig’: {
‘asm’: ‘61616161616161616161616161616161616161616161616161616161<br<616161616161616161616161616161 61616161616161616161616161616161616161616161616161616161616161616<br="">16161616161616161616161616161
6161616161616161616161616161616161616161616161616161616161616161
6161616161616161616161616
161616161616161616161616161c2’,
‘hex’:
‘4c95616161616161616161616161616161616161616161616161616161616161
6161616161616161616161616
16161616161616161616161616161616161616161616161616161616161616161
616161616161616161616
161616161616161616161616161616161616161616161616161616161616161616
1616161616161616161616161616161
6161616161616161616161616161c2’
},
‘sequence’: 0
}
],
‘vout’: [
{
‘value’: Decimal(‘0.00’),
‘n’: 0,
‘scriptPubKey’: {
‘asm’: ‘0 OP_RETURN 11 647573745f72657475726e’,
‘hex’: ‘006a5b0b647573745f72657475726e’,
‘type’: ‘nulldata’
}
}
],
‘blockhash’: ‘380fe8631752b75ee3ce027bdf80e22f3445f4b620a9585b369fb9a0c3f2677e’,
‘confirmations’: 1,
‘time’: 1620224004,
‘blocktime’: 1620224004,
‘blockheight’: 208,
}</br<616161616161616161616161616161>

바이너리 및 소스 코드는 여기에서 다운로드할 수 있습니다.

URL: https://download.bitcoinsv.io/bitcoinsv/

지원과 관련하여 궁금한 내용이 있으면 [email protected] 또는 telegram 주소 https://t.me/bitcoinsvsupport로 문의해 주십시오.

mAPI 소프트웨어 v1.3.0 업그레이드(베타 릴리즈)

버전 1.3.0(베타 릴리즈)는 버전 1.2.0에서 업그레이드하는 것을 적극 권장합니다. 이번 mAPI 릴리즈에서는 원격 노드에서 이중 알림을 받을 수 있도록 지원하는 역할을 합니다.

ZMQ 구독을 통해 mAPI에 직접 연결한 로컬 노드 외에도 거래 내 이중 지출을 감지하는 이중 지출 알림 주소가 포함된 BSV 네트워크 내의 모든 원격 노드는 이제 HTTP 호출을 통해 탐지된 이중 지출에 관한 내용을 mAPI에 전달합니다. 자세한 내용은 https://github.com/bitcoin-sv-specs/protocol을 참고해 주십시오.

확인되지 않은 부모 노드의 이중 지출 알림이 감지될 경우 해당 이중 지출 알림이 전달되도록 개선되었습니다. mAPI는 거래뿐만 아니라 확인되지 않은 부모 노드 중 한쪽에서 이중 지출이 발생할 경우 거래처에 이를 통보합니다.

이제 머클 증명 알림은 콜백 알림 시 16진수 인코딩 블록 헤더를 반환하는 표준 TSC 형식을 사용할 수 있습니다.

콜백 URL의 콜백 이유에 대한 매개변수 지원, 사용자 지정 데이터베이스 서버 배포 지원 및 더 나은 통합 환경을 구성하기 위한 추가 구성 옵션 지원 등 추가 개선이 이루어졌습니다.

세부 정보

  • 확인되지 않은 부모에 대한 이중 지출 통지를 감지합니다.
  • 원격 노드의 이중 지출 알림에 대한 콜백 엔드포인트를 지원합니다.
  • TSC 머클 증명 형식 지원을 추가합니다.
  • 콜백 URL에서 콜백 사유 매개변수 지원을 사용하도록 설정할 수 있습니다.
  • 사용자 지정 데이터베이스 배포 기능을 지원합니다.
  • 요금 확인을 비활성화하는 구성 옵션을 제공합니다.
  • mAPI에 노드 등록 시 ZMQ 엔드포인트 제공 옵션을 제공합니다.
  • 개발 시 HTTP를 통한 mAPI 실행 옵션을 제공합니다.

바이너리 및 소스 코드는 여기에서 다운로드할 수 있습니다.

URL: https://github.com/bitcoin-sv-specs/brfc-merchantapi

지원과 관련하여 궁금한 내용이 있으면 [email protected] 또는 telegram 주소 https://t.me/bitcoinsvsupport로 문의해 주십시오.

비트코인 SV에 지속적인 관심을 보여 주시는 여러분께 항상 감사의 말씀을 드립니다.