Integrando Bitsign Federation
Cómo usar la librería bitsignjs para interactuar con Smart Contracts.
En un artículo previo publicamos de qué se trata nuestro nuevo servicio Bitsign para poder integrar cualquier tipo de proyecto con blockchain y poder hacer uso de las ventajas de seguridad y transparencia de los Smart Contracts.
Integrando la librería a tu proyecto.
Lo primero que necesitamos es instalar el paquete (en este caso de NodeJS) en tu proyecto. Para eso es necesario usar NPM (Node Package Manager) y poder integrar esta librería al proyecto ya existente.
$ npm install bitsignjs --save
Para poder instanciar la librería con nuestras credenciales de acceso, primero es necesario crear nuestro usuario dentro de la plataforma. Para esto es posible usar el siguiente recurso:
Al crear un nuevo usuario se enviará un token de acceso junto con la dirección asociada. Una vez obtenidas las credenciales es posible instanciar la librería con el token de acceso, a continuación un ejemplo usando la librería para NodeJS.
Una vez obtenido el token de acceso es posible utilizar todos los endpoints que estan descriptos en la documentación oficial.
Por ejemplo para obtener el estado de la federación podemos usar el siguiente endpoint:
El formato de la respuesta exitosa es:
{
"success": true,
"data": {
"status": "Running, healthy",
"lastblock": 36750,
"hash": "0xddbbee3c5b10bc16561e16c87e924304cdbb250cb01ec7baf63d67fa9e073c22",
"timestamp": 1517339350,
"explorer": "https://explorer.bitsign.io/block/36750",
"bootnodes": [
"enode://a891225909f70a4ee3f40c1dac05da763fe0354d5f259922abf841db51706283d2957c09fc7266e5f4633583a34dbef3f38a769eb35551788740a06e387dfa2a@159.203.176.160:30303",
"enode://b21d8b85165319a86c822dadcd51fbaf1aca3fe7854df8644c03ac304e34205d31d44d0eac7dd6366a8f8a621eeb2198d9644090d59771148fb3ac92630d2dd6@198.211.100.127:30303"
]
},
"error": null
}
Usando la API para notarizar información
Para notarizar cierta información utilizando la librería podemos usar el méotdo notarizeTx .
Esto creará una transacción dejando registro de la información agregada, la respuesta, de ser existosa, devolverá un JSON con esta forma:
{ success: true,
data:
{ blockHash: '0x8ed074c8fb3e05560cba78e5f98674d192e16e89ac70822c98709725f88c4f01',
blockNumber: 36752,
gasUsed: 21136,
transactionHash: '0xc5c85f57d7b02d94a64fad59aae8b48e18c29c499c3d4ae0802f6cb940021dfa',
explorerUrl: 'https://explorer.bitsign.io/tx/0xc5c85f57d7b02d94a64fad59aae8b48e18c29c499c3d4ae0802f6cb940021dfa',
id: '5a70c35df9805222f338a40e' },
error: null }
Recordar que cualquier transacción registrada en blockchain se puede ver utilizando nuestro explorador de bloques: https://explorer.bitsign.io
Creando un Smart Contract vía API
Ya vimos como integrar, instanciar y dar los primeros pasos usando la librería. Por último vamos a ver como crear un Smart Contract utilizando el mismo web service. En este caso vamos a usar el método contracts.deploy
En caso de que la creación del contrato sea exitoso, la respuesta tendrá la siguiente forma:
{
"success": true,
"data": {
"date": {
"created": "2018-01-31T01:31:00.569Z"
},
"owner": {
"email": "user@test.com
"address": "0x16E843402d1bEe260D5464C927A6A0DC11b0384f"
},
"address": "0x356BD2B170908032318C848bFf366B8Eb0202343",
"encodedAbi": "00000000000000000000000039057b58a265554772bd2aedc2f622a7e33629d700000000000000000000000016e843402d1bee260d5464c927a6a0dc11b0384f000000000000000000000000000000000000000000000000000000000004cb2f",
"txHash": "0x26ee8b2c1c455b8a8b66bde5423347cfaa260508d01e3dd84246421a98f7b8ba",
"__v": 0,
"contractExplorerUrl": "http://explorer.bitsign.io/account/0x356BD2B170908032318C848bFf366B8Eb0202343",
"txExplorerUrl": "http://explorer.bitsign.io/tx/0x26ee8b2c1c455b8a8b66bde5423347cfaa260508d01e3dd84246421a98f7b8ba"
},
"error": null
}
Este es solo uno de los ejemplos de contratos y transacciones que pueden crearse a través de APIS. Nuestra blockchain puede además integrarse con MyEtherWallet o MetaMask para poder utilizar cualquiera de estas extensiones.
Para más información, toda nuestra documentación oficial se encuentra en: