CryptoCoinJS é um projeto JavaScript que ajuda você a interagir com diversas criptomoedas existentes na atualidade, como o famoso Bitcoin, Litecoin, Dogecoin, entre muitas outras. A maioria dos módulos é totalmente compatível com o seu navegador e com o Node.js. Naturalmente, os módulos que fazem interface diretamente com os nós de pares não serão executados no navegador.
Princípios da biblioteca:
Acreditando na filosofia Node.js e UNIX – a idéia de criar pequenos componentes que fazem uma coisa e fazem bem. Escrever software dessa maneira permite que os indivíduos usem e contribuam com muito mais eficácia do que escrevendo uma biblioteca monolítica. O CryptoCoinJS acredita que as pessoas são mais importantes que o código e, portanto, é fundamental escrever um código que seja fácil de ler, fácil de documentar cada módulo com a API e exemplos, e esse código é o inimigo 1 2.
Escrever testes é uma das melhores maneiras de comunicar expectativas entre desenvolvedores. Se a documentação é uma maneira de se comunicar para o consumidor do seu módulo, os testes são uma maneira de se comunicar entre os desenvolvedores.
Plataformas:
O CryptoCoinJS está focado no Node.js e no navegador usando o Browserify. Não há suporte a navegadores herdados, ou seja, se o seu navegador não suporta ECMAScript 5 (2009 – 2010) e não suporta window.crypto.getRandomValues(), alguns dos módulos podem não funcionar.
Começando:
O CryptoCoinJS é escrito em JavaScript puro e pode ser usado no servidor (Node.js) e no cliente (navegador moderno> 2010).
A primeira e provavelmente a mais óbvia é que você precisará de um editor de texto. Sublime Text , Github Atom ou Vim farão uma boa escolha.
O Node.js é executado no Windows, Mac OS X ou Linux. É muito fácil de instalar, basta acessar nodejs.org/download e executar o instalador para sua plataforma de escolha. O Node.js agrupa o npm que, estranhamente, não representa o Node.j Package Manager, apesar de ser seu único objetivo.
Notas sobre pacotes Node.js:
O ecossistema Node.js. contém muitos módulos ou pacotes de software e está crescendo exponencialmente. A sabedoria comum do ecossistema Node.js. é que é melhor escrever pacotes que fazem uma coisa bem semelhante à filosofia do UNIX. Daí as raízes da CryptoCoinJS. Você pode ver uma lista de pacotes aqui: https://www.npmjs.org/
Cada pacote do Node.js. possui um arquivo package.json. Para criar o seu próprio, basta executar:
npm init
O npm fará uma série de perguntas e preencherá o package.json adequadamente.
Os pacotes Node.js geralmente têm dois tipos de dependências caracterizados package.json são dependencies e devDependencies. Há um terceiro chamado peerDependencies, mas está fora do escopo deste artigo. devDependencies são dependências que são usadas apenas no desenvolvimento, como ferramentas de teste e ferramentas de construção. Dependencies são dependências das quais seu pacote depende na produção.
Para instalar uma dependência de produção e atualizar o arquivo package.json:
npm install --save coinkey
Para instalar uma versão específica:
npm install --save coinkey@1.0.0
Para instalar o mais recente:
npm install --save coinkey@latest
Para instalar uma dependência de desenvolvimento e atualizar o arquivo package.json:
npm install --save-dev mocha
Gerando um endereço Bitcoin e uma chave privada:
Para ler a descrição detalhada de chaves privadas, chaves públicas e endereços, consulte http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript por um de nossos colaboradores JP Richardson. Ele usa uma versão antiga do BitcoinJS, mas você pode abrir o console do navegador e seguir o tutorial.
Primeiro, crie seu novo aplicativo (se você já tiver um aplicativo, pule esta etapa):
npm init touch app.js #on windows, create the file in your text editor
Instale coinkey (no momento da redação deste documento, versão 0.1.0):
npm install --save coinkey@1.0.0
Edite o arquivo app.js:
let CoinKey = require('coinkey') //1.0.0 let ck = new CoinKey.createRandom() console.log("Private Key (Wallet Import Format): " + ck.privateWif) console.log("Private Key (Hex): " + ck.privateKey.toString('hex')) console.log("Address: " + ck.publicAddress)
Execute-o:
node app.js
O resultado esperado será semelhante a:
Private Key (Wallet Import Format): 5KcejEy2SaZPi5A3Ga3gfPR8c5WTepzw33enYTkVCwMCYnW3k8M Private Key (Hex): ecf8fdcdc516181757e45dbc91c62294a16150d532ccc9760a0911def1c07b75 Address: 1H8kmcBuSuUokrNPszHU9baSvnfmFRNVky
O endereço e a chave privada (WIF) não serão os mesmos, pois são gerados aleatoriamente. Você pode executá-lo novamente e obter um resultado totalmente diferente.
Para mais informações sobre a biblioteca, acesse o link: cryptocoinjs.com
Gostou deste artigo? Comente abaixo!