Cómo acceder al contenido de Swarm desde el contrato inteligente de ethereum usando oraclize

Estoy tratando de acceder al contenido de un archivo que cargué en Swarm usando oraclize. Encontré un contrato inteligente en https://github.com/oraclize/ethereum-examples/blob/master/solidity/Swarm.sol

Solo estaba tratando de imprimir el 'hola mundo' (el contenido del hash de enjambre que el autor especificó en el contrato). Entonces, simplemente extraje el contrato. Luego usé los detalles en JavaScript de la siguiente manera (usando meteor.js):

//variables

contratoAddressSwarm = "0x87b620f0731e15cb1655e216a87c986154ba4248"

ABIArraySwarm = [{"constante":falso,"entradas":[{"nombre":"miid","tipo":"bytes32"},{"nombre":"resultado","tipo":"cadena"} ],"nombre":"__devolución de llamada","salidas":[],"de pago":falso,"tipo":"función"},{"constante":falso,"entradas":[{"nombre":" miid","tipo":"bytes32"},{"nombre":"resultado","tipo":"cadena"},{"nombre":"prueba","tipo":"bytes"}]," nombre":"__devolución de llamada","salidas":[],"a pagar":falso,"tipo":"función"},{"constante":verdadero,"entradas":[],"nombre":"contenido de enjambre" ,"salidas":[{"nombre":"","tipo":"cadena"}],"a pagar":falso,"tipo":"función"},{"constante":falso,"entradas":[],"nombre":" actualizar","salidas":[],"pagadero":verdadero,"tipo":"función"},{"entradas":[],"pagadero":falso,"tipo":"constructor"},{" anónimo":falso,"entradas":[{"indexado":falso,"nombre":"descripción","tipo":"cadena"}],"nombre":"nuevaOraclizeQuery","tipo":"evento" },{"anónimo":falso,"entradas":[{"indexado":falso,"nombre":"ContenidoEnjambre","tipo":"cadena"}],"nombre":"NuevoContenidoEnjambre","tipo" :"evento"}]

//Imprimir contenido de enjambre en la consola cuando se hace clic en un botón

'haga clic en #buttonSwarm'(evento, instancia) { var template= Template.instance();

myContract = web3.eth.contract(ABIArraySwarm).at(contractAddressSwarm);

console.log("Ejecución del contrato Swarm");

myContract.swarmContent(function(err, res){ TemplateVar.set(template, "counter", res); console.log(TemplateVar.get(template,"counter")); }); },

....

Pero cada vez que está imprimiendo 'nulo'. ¿Qué estoy haciendo mal en la devolución de llamada?

Creo que estoy haciendo algo mal en la devolución de llamada de javascript. ¿Puede enviarme el javascript que está usando? Hoy encontré un error en la consola de javascript del navegador de la siguiente manera: >Error: respuesta JSON RPC no válida: "" >Seguimiento de la pila: require<[26]</module.exports.InvalidResponse @ 192.168.1.116:3000/packages/… >require<[32]</HttpProvider.prototype.sendAsync/request.onreadystatechange@ 192.168.1.116:3000/packages/… No sé qué es goi
¡Bienvenido a Ethereum! Si tiene otra pregunta, hágala haciendo clic en el botón Preguntar .

Respuestas (1)

Marco de Oracle aquí. El soporte para Swarm es experimental, por lo que puede haber algunas interrupciones del servicio de fuente de datos, como ha experimentado. Ahora está de nuevo y funcionando correctamente. Puedes probarlo aquí .

Hola Marco. Gracias por su respuesta. Creo que estoy haciendo algo mal en la devolución de llamada de javascript. ¿Puedes enviarme uno que estés usando?
¿Está utilizando una instancia de blockchain local (es decir, como testrpc o parity/geth en modo dev) o está en testnet/main-net? Si es lo primero, debe instalar el puente ethereum para que Oraclize vea sus contratos inteligentes e interactúe con su instancia de blockchain. Puede encontrar el puente ethereum aquí: github.com/oraclize/ethereum-bridge
estoy usando testnet
Creo que es más fácil si movemos la discusión a nuestro canal gitter: gitter.im/oraclize/ethereum-api?source=orgpage