멋진 커뮤니티 모듈

BitcoinJS (bitcoinjs-lib)

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

Node.js 표준 스타일

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

풍모

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

프로덕션에서 사용해야합니까?

프로덕션에서이 라이브러리의 마스터 브랜치를 사용하려는 경우 stop .Master는 안정적이지 않습니다. 이것은 우리의 개발 브랜치이며 태그가 지정된 릴리스 만 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

이제 foo.myFunction 을 사용하여 새 비트 코인 개인 키를 생성하여 웹 페이지에 <script src="app.js" />foo.myFunction 수 있습니다.

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

예:

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

참고 : 엄격한 ES5 필요하면 노드 LTS는 특징이 라이브러리 트랙, 사용 --transform babelify 당신과 함께 browserify 단계 (AN 사용 es2015 사전).

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

Typescript or VSCode users

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

1
npm install @types/bitcoinjs-lib

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

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

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

에서 어떤 타이프 라이터 관련 버그를보고 DefinitelyTyped 포크 @dlebrecht 에의 PR를 제출 DefinitelyTyped

Flow

흐름 유형 검사기에 대한 정의는 흐름 유형 저장소에서 사용할 수 있습니다.

리포지토리에서 직접 다운로드 하거나 흐름 유형 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에 의해 유지됩니다.

아래 예제는 통합 테스트로 구현되었으므로 이해하기 매우 쉬울 것입니다. 그렇지 않으면 pull 요청이 좋습니다. 일부 예제는 HTTPS를 통해 타사 블록 체인 공급자 (3PBP)와 상호 작용합니다.

여기에 나열 될 수 있다고 생각되는 사용 사례가 있으면 요청하십시오 !

BitcoinJS를 활용하는 프로젝트

기여

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

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

Running the test suite

1 2
npm test npm run-script coverage

라이브러리 보완

  • BIP21 -A 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

대안

라이선스 MIT