Transferencias desde tu red de area local al Tangle de Iota

Solución al mensaje "attachToTangle is not available on this node"

#iota#crypto
iota-sendtransfer

Si habeis tenido problemas al intentar realizar transferencias desde tu red de area local al Tangle de Iota:

error: COMMAND attachToTangle is not available on this node

La solución consiste en aplicar un proxy.

Ejemplo y enlace al repositorio del iota-proxy.

iota-proxy.js

var iotaProxy = require('./lib/iotaproxy.js')
iotaProxy.start(
  {
    host: 'https://iota.bitfinex.com', 
    port: 80, 
    localPort: 14265,
    overrideAttachToTangle: true
  }
)

Arrancamos nuestro proxy:

~ $ node --harmony iota-proxy.js

iota-sendtransfer.js

const IOTA = require('iota.lib.js')

const iota = new IOTA({
  'host': 'http://localhost', // http://service.iotasupport.com
  'port': 14265
})

function sendTransfer(seed, address, message) {
  let messageTrytes = iota.utils.toTrytes(message)
  let tag = iota.utils.toTrytes('iota-mqtt-poc')
  let transfer = [{
    'address': address,
    'value': 0,
    'message': messageTrytes,
    'tag': tag
  }];

  console.log('sending...')

  iota.api.sendTransfer(seed, 4, 18, transfer, function(error, success){
    if(error){
      console.error(error)
    }
    else{
      console.log({from: success[0].address, timestamp: success[0].timestamp })
    }
  })
}

Ejecutamos el ejemplo:

var seed = 'LEWNNNYUEIWVACBBMYPZDGUYOPHPDFPEGJVDZUNVECKAWNAJLTZLXUSGHBAVPANEQALWTVNLNIWXBEEXS'
var address = 'OGIHWCWKQEZZOIGISPCIUWPRMXFWBWHFVKQWCOLQPALJSKQRYCJNMZ9IEYPMCLPTOTQPSSREBNEPPCN9YTTQQMMAXY'
var message = JSON.stringify({'name': 'estebanrfp', 'message': 'My first message sent with IOTA.'})

sendTransfer(seed, address, message)

~ $ node iota-sendtransfer.js

Los tiempos de confirmación dependen de 3 cosas:

1- Número de transacciones en el Tangle (cuanto más transacciones, más oportunidad para que su transacción sea verificada por otros haciendo PoW)

2- Topología de Tangle - En estos momentos la red está agrupada debido a la conexión de nodos completos (full nodes). La topología está en un estado constante de flujo y, naturalmente, se suavizará a medida que el número de nodos aumenta.

3- Su ubicación en el Tangle. Si está ubicado en un clúster y está intentando enviarlo a un nodo de un clúster diferente, puede tardar mucho tiempo en confirmar la transacción. Si envía dentro del clúster, puede tardar unos segundos

Servidor proxy simple para la red Tangle IOTA, que soporta el comando attachToTangle (PoW).

iota-proxy