alastria/alastria-node

Imposible desplegar contratos

Closed this issue · 3 comments

¿Hay alguna incidencia en la red? No me es posible desplegar contratos. He probado en dos nodos distintos, directamente desde geth y con truffle. En ciertos casos la transacción no es minada (cuando no memorizo msg.sender en el constructor). En otros, lo es pero el contrato no funciona (todas las variables a cero, error "bignumber" en funciones de escritura).
Por simplificar, estoy probando con este contrato simple:

pragma solidity ^0.5.0;

contract dominio {
    uint public fee;

    constructor() public {
        fee = 100;
    }
    
    function leer() view public returns ( uint elFee) {
        elFee=fee;
    }
 }

Mi configuración de truffle es:

module.exports = {
  networks: {
    telsius: {
      host: "127.0.0.1",
      port: 22000,
      network_id: "83584648538",
      gasPrice: 0,
      from: "0x2ebe2ee55721e5fb65091cc10aaa7d86ac28d7be",
      type: "quorum"
    },
  },

  // Set default mocha options here, use special reporters etc.
  mocha: {
    // timeout: 100000
  },

  // Configure your compilers
  compilers: {
    solc: {
      version: "0.5.0",
        settings: {
        evmVersion: "byzantium" // for T network
        }
      }
    }
};

Hola!

No tenemos incidencias en la red; déjame que eche un vistazo, y reviso mi truffle y comparamos

Un saludo!

Muchas gracias. Hay algo extraño, no sé si tendrá relación: he dejado uno de los nodos parado 24 horas y, al arrancar, ha sincronizado en unos 40 segundos. Nunca había sido tan rápido.

Hola!

Las úlitmas versiones de Truffle manejan mejor la información de las cuentas a través de hdwallet, y en particular, usando BIP39 como forma de generar el material criptográfico.

En la red T, todavía, es posible el uso de cuentas locales.

Este puede ser un ejemplo de truffle-conf.js válido, y en todo caso, recordad ubicar vuestros .sol en la carpeta "/contracts" y nombrarlos igual que la clase principal del Smart Contract

const HDWalletProvider = require('@truffle/hdwallet-provider');
const keythereum = require('keythereum');
 
const password = 'TU PASSWORD';
const admin = keythereum.recover(password, JSON.parse('--contenido-de-fichero-clave-privada-de-nodo-')).toString('hex');

 module.exports = {
 
  networks: {
 
    alastriaT: {
       network_id: 83584648538,
       gasPrice: 0,
       type: "quorum",
       provider: () => new HDWalletProvider(admin, "http://x.y.z.h:22000")
    }
 
  },
 
  mocha: {
    // timeout: 100000
  },
 
  compilers: {
    solc: {
      version: "0.5.0",
       settings: {
        optimizer: {
          enabled: false,
          runs: 200
        },
        evmVersion: "byzantium"
       }
    }
  },
 
  db: {
    enabled: false
  }
};