멋진 커뮤니티 모듈

BitcoinJS (bitcoinjs-lib)

빌드 상태 NPM 다음 커밋을 위한 팁

js 표준 스타일

node.js 및 브라우저를 위한 순수 JavaScript 비트코인 ​​라이브러리로, 1,500만 명 이상의 지갑 사용자가 사용 중인 것으로 추정되며 현재 생산 중인 거의 모든 비트코인 ​​웹 지갑의 백본입니다.

특징

  • Clean: 순수한 JavaScript, 간결한 코드, 읽기 쉽습니다.
  • Tested: 적용 범위 > 90%, 타사 통합 테스트.
  • Careful: 소규모 집중 풀 요청을 위한 2인 승인 프로세스입니다.
  • Compatible: Node.js 및 모든 최신 브라우저에서 작동합니다.
  • Powerful: 다중 서명, HD 지갑과 같은 고급 기능을 지원합니다.
  • Secure: 강력한 난수 생성, PGP 서명 릴리스, 신뢰할 수 있는 개발자.
  • Principled: RNG가 포함된 브라우저는 지원되지 않습니다(IE < 11).
  • Standardized: 노드 커뮤니티 코딩 스타일, Browserify, 노드의 stdlib 및 버퍼.
  • Fast: 최적화된 코드, 성능을 위해 바이트 배열 대신 형식화된 배열을 사용합니다.
  • 실험 친화적: 비트코인 ​​메인넷 및 테스트넷 지원.
  • 알트코인 지원: 비트코인 ​​파생 암호화폐(예: Dogecoin)로 작업할 수 있습니다.

이것을 프로덕션에 사용해야 합니까?

프로덕션에서 이 라이브러리의 master 브랜치를 사용하려는 경우 중지하십시오 . Master는 stable이 아니며 개발 브랜치이므로 태그가 지정된 릴리스만 stable로 분류될 수 있습니다 .

설치

1
npm install bitcoinjs-lib

설정

Node.js

1
var bitcoin = require('bitcoinjs-lib')

Browser

browserify 사용 방법에 익숙하신 경우 이를 무시하고 정상적으로 진행하세요. 이러한 단계는 단지 권고사항일 뿐이며 귀하의 애플리케이션에 적합하지 않을 수 있습니다.

이 단계에서는 Browserify가 설치되어 있다고 가정합니다.

프로젝트에 대한 index.js파일을 만듭니다.

1 2 3 4 5 6 7 8 9 10
let bitcoin = require('bitcoinjs-lib') // your code here function myFunction () { return bitcoin.ECPair.makeRandom().toWIF() } module.exports = { myFunction }

이제 브라우저용으로 컴파일하려면 다음을 수행하십시오.

1
browserify index.js --standalone foo > app.js

이제 새로운 Bitcoin 개인 키를 생성 <script src="app.js" />하여 웹 페이지에 넣을 수 있습니다 .foo.myFunction

참고 : 자바스크립트를 흉하게 만드는 경우 다음 변수 이름을 맹글링에서 제외해야 합니다: BigInteger, ECPair, 이는 typeforcePoint 에서 사용되는 function-name-duck-typing 때문입니다 .

예:

1
uglifyjs ... --mangle reserved=['BigInteger','ECPair','Point']

참고 : 이 라이브러리는 Node LTS 기능을 추적합니다. 엄격한 ES5가 필요한 경우 단계 --transform babelify와 함께 사용하세요 browserify(사전 설정 사용 es2015).

참고 : 이 라이브러리가 iOS 10 장치에서 실행될 것으로 예상하는 경우 buffer@5.0.5 이상을 사용하고 있는지 확인하세요.

Typescript or VSCode users

^3.0.0Typescript에 대한 유형 선언은 라이브러리 버전에 사용할 수 있습니다 .

1
npm install @types/bitcoinjs-lib

bitcoinjs-lib이제 TypeScript 호환 라이브러리로 사용할 수 있습니다 .

1
import { HDNode, Transaction } from 'bitcoinjs-lib'

VSCode(및 기타 편집기)의 경우 Intellisense가 해당 정보를 사용하여 코드(자동 완성, 정적 분석)를 지원하므로 사용자는 유형 선언을 설치하는 것이 좋습니다.

@dlebrecht 확실히Typed 포크 에서 타이프스크립트 관련 버그를 보고하고 , ReliableTyped 에 PR을 제출하세요.

Flow

Flow typechecker 에 대한 정의는 flow-typed 저장소에서 사용할 수 있습니다.

리포지토리에서 직접 다운로드하거나 흐름 유형의 CLI를 사용하여 다운로드할 수 있습니다.

1 2
# npm install -g flow-typed $ flow-typed install -f 0.27 bitcoinjs-lib@2.2.0 # 0.27 for flow version, 2.2.0 for bitcoinjs-lib version

정의는 완전하며 버전 2.2.0으로 최신 상태입니다. 정의는 @runn1ng 에 의해 유지 관리됩니다 .

아래 예는 통합 테스트로 구현되었으므로 이해하기 매우 쉽습니다. 그렇지 않으면 끌어오기 요청이 인정됩니다. 일부 예는 HTTPS를 통해 제3자 블록체인 공급자(3PBP)와 상호 작용합니다.

여기에 나열할 수 있다고 생각되는 사용 사례가 있으면 요청 하세요 !

BitcoinJS를 활용하는 프로젝트

기여

우리는 항상 끌어오기 요청을 받아들이지만 코딩 스타일, 테스트 중심 개발 및 커밋 메시지와 관련하여 특정 표준을 준수합니다.

사소한 수정 사항을 줄이기 위해 기여할 때 이러한 사항을 준수하도록 최선을 다해 주십시오.

Running the test suite

1 2
npm test npm run-script coverage

라이브러리 보완

  • BIP21 - BIP21 호환 URL 인코딩 라이브러리
  • BIP38 - 암호로 보호되는 개인 키
  • BIP39 - 결정적 키에 대한 니모닉 생성
  • BIP32-Utils - BIP32 작업을 위한 유틸리티 세트
  • BIP66 - 엄격한 DER 서명 디코딩
  • BIP68 - 상대 잠금 시간 인코딩 라이브러리
  • BIP69 - 거래 입력 및 출력의 사전식 색인화
  • Base58 - Base58 인코딩/디코딩
  • Base58 검사 - Base58 검사 인코딩/디코딩
  • Bech32 - BIP173 호환 Bech32 인코딩 라이브러리
  • coinselect - bitcoinjs-lib를 위한 수수료 최적화 트랜잭션 입력 선택 모듈입니다.
  • merkle-lib - 머클 루트 및 트리 계산을 위한 성능 중심 라이브러리입니다.
  • minimaldata - 비트코인 ​​정책을 확인하는 모듈: SCRIPT_VERIFY_MINIMALDATA

대안

라이선스 발급 _