Script en Python que reporta distintos datos sobre la BFA
Este _script_ requiere Python 3 y la biblioteca web3 (que puede instalarse con `pip`).
Para funcionar requiere conocer el directorio donde está el _socket_ `geth.ipc` (asume que es `${BFANETWORKDIR}/node/geth.ipc` o, en su defecto `~/bfa/network/node/geth.ipc`), y el puerto RPC (asume que es el 8545). Ambos valores pueden especificarse en la línea de comandos.
También puede usarse como biblioteca. La clase BFA tiene un conjunto de métodos que permiten obtener información de un nodo `geth`.
parent_parser.add_argument("--json",help="Produce salida en formato JSON",action="store_true")
subparsers=parser.add_subparsers(help="Consulta a realizar",dest="command")
subparsers.required=True
parser_signers=subparsers.add_parser('signers',aliases=['sealers'],help='Información sobre selladores',parents=[parent_parser])
parser_signers.add_argument("--status",help="Indica cuantos bloques han pasado desde último sellado por cada sellador (-1 si no está activo)",action="store_true")
parser_signers.add_argument("--use-block-number",help="Indica el número de bloque en lugar de los bloques transcurridos",action="store_true")
parser_signers.add_argument("--blocks",help="Especifica cuantos bloques buscar hacia atrás (default: 5 *número_de_selladores)",type=positive,default=0)
parser_signers.set_defaults(func=signers)
parser_votes=subparsers.add_parser('votes',aliases=['proposals'],help="Indica el estado de una votación",parents=[parent_parser])
parser_votes.add_argument("--block-number",help="Número de bloque en el cual se quiere conocer el estado de la votación (default: último)",type=positive,default=MAX_BLOCKS)
parser_votes.set_defaults(func=votes)
parser_block=subparsers.add_parser('block',help="Información sobre un bloque",parents=[parent_parser])
parser_block.add_argument("--block-number",help="Número de bloque (default: último)",type=positive,default=MAX_BLOCKS)
parser_block.add_argument("--decimal",help="Expresa los valores numéricos en decimal",action="store_true")
parser_block.add_argument("--signer",help="Agrega un campo con el sellador del bloque",action="store_true")