Coder Social home page Coder Social logo

alastria / alastria-node Goto Github PK

View Code? Open in Web Editor NEW
81.0 81.0 299.0 6.4 MB

How to install a node in Alastria Red-T (Quorum technology) and tips to deploy and use it

Home Page: https://alastria.io/

License: Apache License 2.0

Shell 91.28% Dockerfile 8.72%

alastria-node's Introduction

WARNING

THIS REPOSITORY IS DEPRECATED.


ALASTRIA Red T

License Slack Status

This page contains technical information needed to work in the Alastria ecosystem on the possible different ways.

You'll need at least a host/node to interact with the network, please read the technical requirements for it.


Monitoring

RedT dashboard is at https://alastria-netstats2.planisys.net:8443/login , user alastria, pass alastria In order for your Node to be listed here please run geth with following options:

  • --metrics --pprof --pprof.addr=0.0.0.0

and open port 6060 to IP address 185.180.8.152


  • 😎 _ - Please, consider installing Quorum node following this guide.
  • ⚠️ _ - In you have alreday installed a node, please update to the last version following these instructions.

System requirements

Operating System: Ubuntu 16.04 64 bits; Ubuntu 18.04 64 bits

Hardware:

Hardware minimum desired
CPU's: 2 4
Memory: 4 Gb 8 Gb
Hard Disk: 128 Gb 256 Gb

At mid-2021, the database takes 80Gb, and grows 0.5Gb every week (~1GB growth per week)

Important Requirement

A DNS resolver must be available and accessible to make the installation process possible.

E.g. the command
dig +short netstats.telsius.alastria.io @resolver1.opendns.com 
must yield a valid, routable IPv4 address

TCP/UDP PORTS

You'll need to open the following ports in your firewall, inbound and outbound to deploy a node:

Port Type Definition
21000 TCP/UDP Geth process application port (inbound and outbound for ethereum traffic)
9000 TCP Constellation port (private transactions, inbound and outbound)
80 TCP Outbound for Websockets feed to netstats server
80 and 443 TCP Inbound RPC Port if using the automatic installation with Alastria Open Access Component
8086 TCP Outbound for InfluxDB statistics collection
53 TCP/UDP Access to external Internet based resolvers
6060 TCP Allow Prometheus scraping from 185.180.8.152

IP ADDRESSES

The IP resulting out of the installation process (e.g. the IPv4 part of the enode) , must not be an RFC1918 IPv4 address

10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

These IP addresses are non-routable and will result in your node being unreachable and unable to participate in the blockchain.

In case the installation process yields a non-routable IP address, you must verify if your node is behind a firewall, in which case you might use the firewall's external address only in the case the firewall provides for Full-cone NAT.

Restricted-Cone NAT has not been tested yet for p2p functionality.

Installation & configuration of

[Regular node] Quorum node + Constellation + Access point + Monitor

[Regular node] Quorum node installation using Ansible from host machine

[Validator node] Quorum node + Access point + Monitor

[Bootnode node] Quorum node

Deployment of Smart Contracts on Alastria Network

To know more about the use of Alastria Network, you can visit the Smart Contract Deployment Guides:

(IMPORTANT) Be aware that the actual's Alastria network EVM version is byzantium and , therefore, the Smart Contracts must be compiled for this EVM's versión:

  • Remix:

    EVM Version - Remix

  • Truffle: in truffle.js configuration file

    compilers: {
        solc: {
          version: "0.5.17", // A version or constraint - Ex. "^0.5.0"
          settings: {
            optimizer: {
              enabled: true,
              runs: 100   // Optimize for how many times you intend to run the code
            },
            evmVersion: "byzantium" // for T network
          }
        }
      }
  • Buidler: in buidler.config.ts configuration file

    const config: BuidlerConfig = {
      solc: {
        version: '0.5.17',
        evmVersion: 'byzantium',
        optimizer: {
          enabled: true,
          runs: 100
        }
      },

Connection from External Applications using WebSockets

Checking Node's Health

In order to check if your node is operational, you can establish monitoring based on your node's ingress and egress P2P traffic during the last 5 minutes.

As soon as the node comes up, e.g. starts to run, it will send metrics points to Alastria InfluxDB server.

These are queries to the InfluxDB API you can translate into your preferred language and/or framework:

Ingress traffic:

curl -G 'http://geth-metrics.planisys.net:8086/query?pretty=true' --data-urlencode "db=alastria" --data-urlencode "user=EDITED_USER" --data-urlencode "password=EDITED_PASSWORD" --data-urlencode "q=select mean(m1) from \"geth.p2p/InboundTraffic.meter\" where (time > now()-5m AND host =~ /^REG_YOUR_NODE_NAME$/)"

Egress traffic:

curl -G 'http://geth-metrics.planisys.net:8086/query?pretty=true' --data-urlencode "db=alastria" --data-urlencode "user=EDITED_USER" --data-urlencode "password=EDITED_PASSWORD" --data-urlencode "q=select mean(m1) from \"geth.p2p/OutboundTraffic.meter\" where (time > now()-5m AND host =~ /^REG_YOUR_NODE_NAME$/)"

The output are jsons that need to parsed and look like this (value is a pair where the second field should be > 0)

{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "geth.p2p/OutboundTraffic.meter",
                    "columns": [
                        "time",
                        "mean"
                    ],
                    "values": [
                        [
                            "2020-06-15T08:40:12.772770668Z",
                            1225.7697298713392
                        ]
                    ]
                }
            ]
        }
    ]
}

Alastria network resources

List of links with resources for the Alastria Network

alastria-node's People

Contributors

adlrocha avatar agathapj avatar airos478963 avatar alejandroalffer avatar amartinez-cloud avatar andresag avatar carlosho17 avatar cmoralesdiego avatar davidcontrerasicai avatar dlanda-tecnalia avatar esanchma avatar estebanmontenegro avatar fjmacon avatar fooock avatar go2chain avatar grupo10ip avatar jabdov avatar jasonpsiemens avatar jcarovestigia avatar jhernandezgroupbme avatar jiroman1985 avatar juanluisgozalofdez avatar marcosio avatar miguel-briales avatar nachodelavega avatar netmanito avatar patofet avatar svel91 avatar victorns69 avatar vmunozre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alastria-node's Issues

Error al iniciar un nodo validador de 0

Según se arranca la primera vez e intenta sincronizar con el resto de nodos validadores, genera este error:
NFO [01-03|10:31:26] Block synchronisation started
INFO [01-03|10:31:26] Mining aborted due to sync
INFO [01-03|10:31:26] Imported new chain segment blocks=192 txs=0 mgas=0.000 elapsed=167.428ms mgasps=0.000 number=192 hash=ec983b…d15db0
panic: runtime error: index out of range

goroutine 45 [running]:
panic(0xef9460, 0xc4200120e0)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/ethereum/go-ethereum/core/types.NewTransactionsByPriceAndNonce(0x192e620, 0xc4223f1450, 0xc4224a3d10, 0x0)
/root/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/core/types/transaction.go:399 +0x475
github.com/ethereum/go-ethereum/miner.(*worker).commitNewWork(0xc42000e280)
/root/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/miner/worker.go:463 +0x97b
github.com/ethereum/go-ethereum/miner.(*worker).update(0xc42000e280)
/root/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/miner/worker.go:259 +0x232
created by github.com/ethereum/go-ethereum/miner.newWorker
/root/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/miner/worker.go:158 +0x5ea

Se arranca de nuevo el nodo y sincroniza correctamente.

Validador: Cannot start mining without etherbase

En el caso de una instalación limpia desde 0, si tras inicializar un nodo validador con "./init.sh 192.168.99.52 validator myval01" (instalación interna para test), se procede a arrancarlo mediante "./start.sh clean", el nodo no se levanta y reporta el error:

ERROR[02-21|15:40:13] Cannot start mining without etherbase    err="etherbase address must be explicitly specified"
Fatal: Failed to start mining: etherbase missing: etherbase address must be explicitly specified

Dado que el "init.sh" no crea ninguna cuenta, basta con hacerlo manualmente utilizando "geth account new", por ejemplo en mi caso:

[alastriaval01@alastria scripts]$ geth --datadir /home/alastriaval01/alastria/data account new
WARN [02-21|15:47:03] No etherbase set and no accounts found as default
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase:
Repeat passphrase:
Address: {7ce4e63921c8e59ed458de1f0800ad3bf168c8da}

Tras ello el validador arranca sin problemas y se sincroniza con el resto de nodos

Implementación de la herramienta de monitorización

Se implementan las historias de usuario:

Como gestor de la red Alastria quiero que se actualizen los ficheros de configuración del nodo para poder atender a las demandas de cambios en la red.

Como gestor de la red Alastria quiero que se reinicien los procesos geth y constellation-nodes para poder atender a las demandas de salidas de la red.

Como gestor de la red Alastria quiero que se lance una actualización según configuración CRON para poder actualizar el nodo o reiniciarlo.

Integración de token JWT en CakeShop

Definir arquitectura y componentes a utilizar para realizar introspección del token y autorizar acceso al recurso a través de un token JWT generado con UPORT.

Tarea asociada #36

Instalación Nodo General

Estamos siguiendo el procedimiento de instalación, sin mayores problemas.

Tipo: general
Nodo: samelan001

A la hora de rellenar la información de contacto, en DIRECTORY_REGULAR.md me falta el dato de enode, y no quiero hacer el PULL Request sin saber si ese dato lo rellenamos nosotros o se rellena después.

Gracias

Some error checking should be performed when erasing files and directories

echo "Cleaning your node ..."
#Backup directory tree
rm -rf ~/alastria/logs/quorum_*
rm -rf ~/alastria/data/geth/chainData
rm -rf ~/alastria/data/geth/nodes
# Optional in case you start with process locked
# rm ~/alastria/data/geth/LOCK
rm -f ~/alastria/data/geth/transactions.rlp
rm -f ~/alastria/data/geth.ipc
#rm -f ~/alastria/data/quorum-raft-state
#rm -f ~/alastria/data/raft-snap
#rm -f ~/alastria/data/raft-wal
rm -rf ~/alastria/data/constellation/data
rm -f ~/alastria/data/constellation/constellation.ipc
rm -rf ~/alastria/data/geth/lightchaindata
rm -rf ~/alastria/data/geth/chaindata

At least some error checking should be performed in order to detect some errors like file and directory permission access (eg. directory was created under different user).
Otherwise, the script is difficult to use from other programs (which may run under different users)

init.sh crea incorrectamente los ficheros de nodos

He comprobado que cuando se crea un nodo regular usando el script init.sh, los ficheros que son modificados son:

  • ../data/constellation-nodes.json
  • ../data/permissioned-nodes_validator.json

Sin embargo, cuando se crea un nodo validador usando ese mismo script, son modificados los siguientes ficheros:

  • ../data/permissioned-nodes_general.json
  • ../data/permissioned-nodes_validator.json
  • ../data/static-nodes.json

¿Están los nombres de los ficheros json invertidos en ese script?

Timeout error in RPC connection to regular node

I am using Python's web3 library to perform RPC operations over a regular node. Usually the operations are received and performed by the node immediately. However, in some cases I am receiving a Read time out error out of blue, such as:

HTTPConnectionPool(host='13.81.61.232', port=22000): Read timed out. (read timeout=60) (<class 'requests.exceptions.ReadTimeout'>)

This is the Web3 connection I am using to the regular node:

self.web3 = Web3(RPCProvider(host=self.eth_info.host, port=self.eth_info.port, timeout=60))

Is someone facing this same problem, or is it just me? I don't know if the reason for this error is the Web3 library or the RPC port.

Inicializar nodo de Alastria

Hola, según tengo entendido para poder empezar a realizar transacciones en la red Alastria hay que notificar al administrador de la red la cuenta de mi nodo para que realice una transferencia y poder habilitar ese nodo, ¿como me pongo en contacto con ese administrador?

Muchas Gracias!

Raft - Se reinicia la test-net por #34

Como se ha cambiado la forma en que se inicializa la red, se procede a reiniciar la test-net con el nuevo procedimiento para evaluar su correcto funcionamiento.

Cakeshop detrás de proxy Nginx

He encontrado un fallo con la sincronización del front y el back de Cakeshop al colocarlo detrás de nginx. El front abre un websocket con el front y parece que hay que colocar una configuración específica para actualizar el socket.

Solución websocket:
https://gist.github.com/michiel/1064640/deaf8b8c28b408db2b26a5cb0091b0fdfd1531a4

También hay un problema de soporte de CORS en la API al colocar el proxy nginx. Parece estar relacionado con el CORS enabled de Swagget:
https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/cors.md

Should report an error if Constellation does not start properly on a given time, or gives errors

if [[ "$NODE_TYPE" == "general" ]]; then
echo "[*] Starting Constellation node"
nohup constellation-node ~/alastria/data/constellation/constellation.conf 2>> ~/alastria/logs/constellation_"${_TIME}".log &
check_constellation_isStarted
fi

The call to check_constellation_isStarted just waits forever until Constellation is started (see #214).
But even if #214 is corrected, this script should report properly any errors to the caller, not just a timeout, by sending back the errors logged by Constellation.
Otherwise it can only be used interactively and not by other programs.

Integrar MongoDB en CakeShop

Se debería poder utilizar mongodb como origen de datos de CakeShop.

Pare ello, hay que investigar cómo integrar Kundera con Hibernate y MongoDb.

Error al generar transacciones privadas 'privateFor'

Se realiza un test desde el nodo SantanderGW a IndraGW con el código:

a = eth.accounts[0]
web3.eth.defaultAccount = a;

// abi and bytecode generated from simplestorage.sol:
// > solcjs --bin --abi simplestorage.sol
var abi = [{"constant":true,"inputs":[],"name":"storedData","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"x","type":"uint256"}],"name":"set","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"get","outputs":[{"name":"retVal","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"initVal","type":"uint256"}],"payable":false,"type":"constructor"}];

var bytecode = "0x6060604052341561000f57600080fd5b604051602080610149833981016040528080519060200190919050505b806000819055505b505b610104806100456000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632a1afcd914605157806360fe47b11460775780636d4ce63c146097575b600080fd5b3415605b57600080fd5b606160bd565b6040518082815260200191505060405180910390f35b3415608157600080fd5b6095600480803590602001909190505060c3565b005b341560a157600080fd5b60a760ce565b6040518082815260200191505060405180910390f35b60005481565b806000819055505b50565b6000805490505b905600a165627a7a72305820d5851baab720bba574474de3d09dbeaabc674a15f4dd93b974908476542c23f00029";

var simpleContract = web3.eth.contract(abi);
var simple = simpleContract.new(42, {from:a, data: bytecode, gas: 0x47b760, privateFor: ["K7H2ULb9cq648JoGXH12UQ/Dj7Poe2GiDYHE+Glrz04="]}, function(e, contract) {
	if (e) {
		console.log("err creating contract", e);
	} else {
		if (!contract.address) {
			console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined...");
		} else {
			console.log("Contract mined! Address: " + contract.address);
			console.log(contract);
		}
	}
});

Cuando se ejecuta desde la consola se genera la excepción 'EOF' y en la traza del nodo:

INFO [12-27|10:49:00|internal/ethapi/api.go:1154]      sending private tx                       data=6060604052341561000f57600080fd5b6040516020806101
49833981016040528080519060200190919050505b806000819055505b505b610104806100456000396000f30060606040526000357c01000000000000000000000000000000000000000
00000000000000000900463ffffffff1680632a1afcd914605157806360fe47b11460775780636d4ce63c146097575b600080fd5b3415605b57600080fd5b606160bd565b604051808281
5260200191505060405180910390f35b3415608157600080fd5b6095600480803590602001909190505060c3565b005b341560a157600080fd5b60a760ce565b604051808281526020019
1505060405180910390f35b60005481565b806000819055505b50565b6000805490505b905600a165627a7a72305820d5851baab720bba574474de3d09dbeaabc674a15f4dd93b9749084
76542c23f00029000000000000000000000000000000000000000000000000000000000000002a privatefrom= privatefor="[K7H2ULb9cq648JoGXH12UQ/Dj7Poe2GiDYHE+Glrz04=
]"
ERROR[12-27|10:49:00|rpc/server.go:136]                goroutine 3134 [running]:
github.com/ethereum/go-ethereum/rpc.(*Server).serveRequest.func1(0xc446749440, 0x1933620, 0xc44ee687d0)
	/home/ubuntu/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:135 +0x12d
panic(0xef9460, 0xc420012090)
	/usr/local/go/src/runtime/panic.go:458 +0x243
github.com/ethereum/go-ethereum/internal/ethapi.(*PublicTransactionPoolAPI).SendTransaction(0xc44679d200, 0x192e960, 0xc448aa1e40, 0x1694b5d0bb570d05
, 0x8091000d827d9849, 0xfe9077bc, 0x0, 0xc4408e5a60, 0x0, 0x0, ...)
	/home/ubuntu/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/internal/ethapi/api.go:1155 +0x8ef
reflect.Value.call(0xc440ddde00, 0xc44f0161c8, 0x13, 0x103617e, 0x4, 0xc44390c060, 0x3, 0x4, 0x1, 0xf5dd40, ...)
	/usr/local/go/src/reflect/value.go:434 +0x5c8
reflect.Value.Call(0xc440ddde00, 0xc44f0161c8, 0x13, 0xc44390c060, 0x3, 0x4, 0x1, 0x1, 0x11e1a05)
	/usr/local/go/src/reflect/value.go:302 +0xa4
github.com/ethereum/go-ethereum/rpc.(*Server).handle(0xc446749440, 0x192e960, 0xc448aa1e40, 0x1933620, 0xc44ee687d0, 0xc44390c000, 0xc44ee68840, 0x0,
 0xebb6c0)
	/home/ubuntu/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:311 +0x8ea
github.com/ethereum/go-ethereum/rpc.(*Server).exec(0xc446749440, 0x192e960, 0xc448aa1e40, 0x1933620, 0xc44ee687d0, 0xc44390c000)
	/home/ubuntu/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:333 +0x1d9
github.com/ethereum/go-ethereum/rpc.(*Server).serveRequest(0xc446749440, 0x1933620, 0xc44ee687d0, 0xc4632efc01, 0x1, 0x0, 0x0)
	/home/ubuntu/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:194 +0x414
github.com/ethereum/go-ethereum/rpc.(*Server).ServeSingleRequest(0xc446749440, 0x1933620, 0xc44ee687d0, 0x1)
	/home/ubuntu/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:225 +0x4e
github.com/ethereum/go-ethereum/rpc.(*Server).ServeHTTP(0xc446749440, 0x192d3a0, 0xc4501cf930, 0xc4494682d0)
	/home/ubuntu/alastria-node/scripts/quorum/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/http.go:161 +0x4f4
net/http.serverHandler.ServeHTTP(0xc440bf2080, 0x192d3a0, 0xc4501cf930, 0xc4494682d0)
	/usr/local/go/src/net/http/server.go:2202 +0x7d
net/http.(*conn).serve(0xc431424980, 0x192e960, 0xc449053900)
	/usr/local/go/src/net/http/server.go:1579 +0x4b7
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2293 +0x44d

Error durante la ejecución del script bootstrap.sh

El script "bootstrap.sh" obliga a que el directorio destino de la instalación esté ubicado bajo el $HOME del usuario que la ejecuta, generando error en caso contrario. Por ejemplo, no es posible instalar el nodo en "/opt".

Actualización incorrecta de los json con backup

Solo una cosilla para los que ya tuvieran configurado el nodo y deseen mantener la configuración, hay un problema con la script init.sh y la opción backup, debido a que aunque recupera la configuración correctamente, en los distintos ficheros de nodos guarda el enode nuevo que se genera durante la inicialización, quedando un enode en geth distinto del que se añade en los ficheros permissioned-nodes_general.json, permissioned-nodes_validator.json y static-nodes.json.

Test for Taiga

Only testing integration with Taiga.

This is a modification.

Preparación de entorno para UPORT

Se va a preparar un entorno con los contratos de UPORT desplegados y toda la infraestructura para que se pueda empezar a trabajar en identidad.

Se manejan dos alternativas:

  1. desplegar los contratos en la test-net y usar la infraestructura de arquitectura.
  2. generar un entorno paralelo (7 nodos y lo necesario uport) para generar rápidamente un entorno de trabajo para evolucionar identidad.

"start.sh clean" elimina los "ether" iniciales definidos en el genesis.json

Tras la configuración de un nodo en el que se importa la cuenta definida en el genesis.json (la única que inicialmente tiene "saldo"):

    "alloc": {
      "0x58b8527743f89389b754c63489262fdfc9ba9db6": {
        "balance": "1000000000000000000000000000"
      }
    }

Si se arranca normalmente (start.sh) podemos consultar su "saldo":

Welcome to the Geth JavaScript console!

instance: Geth/mygen01/v1.7.2-stable-0905eda4/linux-amd64/go1.7.3
coinbase: 0x0b95902d6e755e8e5fb344fe41d4fac046a6a14e
at block: 0 (Thu, 01 Jan 1970 01:00:00 CET)
 datadir: /home/alastriatest/alastria/data
 modules: admin:1.0 debug:1.0 eth:1.0 istanbul:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> web3.fromWei(eth.getBalance("0x58b8527743f89389b754c63489262fdfc9ba9db6"), "ether");
1000000000

Pero si por el contrario se arranca con la opción "clean" (start.sh clean) entonces el saldo desaparece y no es posible recuperarlo:

Welcome to the Geth JavaScript console!

instance: Geth/mygen01/v1.7.2-stable-0905eda4/linux-amd64/go1.7.3
coinbase: 0x58b8527743f89389b754c63489262fdfc9ba9db6
at block: 0 (Thu, 01 Jan 1970 01:00:00 CET)
 datadir: /home/alastriatest/alastria/data
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> web3.fromWei(eth.getBalance("0x58b8527743f89389b754c63489262fdfc9ba9db6"), "ether");
0

El problema de no disponer de ninguna cuenta con saldo suficiente, es que en esa situación no podemos desplegar ningún Smart Contract.

Possible infinite loop in check_constellation_isStarted()

check_constellation_isStarted(){
set +e
RETVAL=""
while [ "$RETVAL" == "" ]
do
RETVAL="$(ss -nutlp | grep $CONSTELLATION_PORT)"
[ "$RETVAL" != "" ] && echo "[*] constellation node at $CONSTELLATION_PORT is now up."
[ "$RETVAL" == "" ] && echo "[*] constellation node at $CONSTELLATION_PORT is still starting. Awaiting 5 seconds." && sleep 5
done
echo "[*] resuming start procedure"
set -e
}

If Constellation never starts, there seems to be an infinite loop and the script does not finish or reports an error to the caller, so it is not usable from other programs (like the Monitor).

Añadir white list a constellation

En el fichero constellation.conf se añade ipwhitelist con lo mismo que othernodes.

Hay que modificar los ficheros start.sh y restart.sh.

Error durante el 'build' del monitor

La ejecución de 'monitor.sh build' en un "CentOS Linux release 7.4.1708 (Core)" da el siguiente error:

can't load package: package github.com/alastria/monitor: no buildable Go source files in /root/alastria/workspace/src/github.com/alastria/monitor

Como workaround, editar el fichero 'scripts/monitor.sh' y comentar la línea:
mkdir -p "$GOPATH"/src/github.com/alastria/monitor

Una vez aplicado este cambio el monitor se descarga y construye correctamente.

Integración de anillo de claves en CakeShop

Debemos definir cómo integrar un anillo de claves para que cada uno de los accounts de quorum gestionados por CakeShop pueda desbloquearse automáticamente cada vez que se desee realizar una operación

Installation of leveldb fails

Hi,

We are trying to install the alastria-node on a Ubuntu 16.04 64bit machine with 2 cpu cores, 4gb of ram and 30gb of disk space.

We followed the instructions in the readme, executing the bootstrap.sh script. However, it looks like the leveldb installation fails:

...
Cloning into 'leveldb'...
remote: Counting objects: 1846, done.
remote: Total 1846 (delta 0), reused 0 (delta 0), pack-reused 1846
Receiving objects: 100% (1846/1846), 997.59 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1274/1274), done.
Checking connectivity... done.
mkdir out-shared
mkdir out-shared/db
mkdir out-shared/port
mkdir out-shared/table
mkdir out-shared/util
mkdir -p out-shared/helpers/memenv
g++ -I. -I./include -std=c++0x -fno-builtin-memcmp -pthread -DOS_LINUX -DLEVELDB_PLATFORM_POSIX=1 -DLEVELDB_ATOMIC_PRESENT -DHAVE_CRC32C=0 -DHAVE_SNAPPY=0 -O2 -DNDEBUG -DLEVELDB_SHARED_LIBRARY -DLEVELDB_COMPILE_LIBRARY -fPIC -fvisibility=hidden -c db/builder.cc -o out-shared/db/builder.o
In file included from ./port/port.h:14:0,
                 from ./db/filename.h:14,
                 from db/builder.cc:7:
./port/port_posix.h:50:36: error: ‘LEVELDB_IS_BIG_ENDIAN’ was not declared in this scope
 static const bool kLittleEndian = !LEVELDB_IS_BIG_ENDIAN;
                                    ^
Makefile:425: recipe for target 'out-shared/db/builder.o' failed
make: *** [out-shared/db/builder.o] Error 1

Alastria connectivity questions

Hi,

We are interested in joining the Alastria network and are currently playing a little bit with the Alastria setup and have some general technical questions.

When we run the start script (for a general node), in the beginning, we are connecting to several Constellation nodes, but no Geth nodes. So we assume, we have to get "on the list" of the permissioned nodes.

We found the following file of permissioned nodes here: https://github.com/alastria/alastria-node/blob/feature/ibft/data/permissioned-nodes_general.json

Furthermore, the documentation states that we would also need to issue a pull request and our contact information here: https://github.com/alastria/alastria-node/blob/feature/ibft/DIRECTORY_REGULAR.md

Our questions:

  • Is that everything that needs to be done to join the network and issue transactions?
  • How is the updated permissioned-nodes_general.json distributed to the other network participants and who decides on this? How fast does that happen?
  • If we would become a new participant, what needs to be done from our side in the process of more institutions to join?

monitor script tries to kill mdadm

./monitor stop, in an Ubuntu machine, tries to kill the running mdadm daemon, which has cwd /sbin/mdadm --monitor --pid-file /run/mdadm/monitor.pid --daemonise --scan --syslog.

mdadm is running as root, so a regular user can't kill it with signals, but some users run Alastria scripts as root.

State Tree Pruning

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.