Funciones para crear cuentas en la blockchain Hive + Python / Beem

image.png


¡Hola, Hivers!

Desde hace un tiempo he experimentado con la creación de cuentas en la blockchain Hive, con todo este conocimiento he creado unas funciones básicas para crear cuentas de Hive que te puede ayudar para una app privada que quieras hacer.

Para aquellos que estén considerando integrar estas funciones en un frontend, una excelente opción es utilizar Flask, un microframework de Python. Esto te permitirá desarrollar tu propia API para la creación de cuentas en Hive.

Para desarrollar estas funciones he usado la librería de Python de Hive llamada Beem porque facilita muchas cosas. Beem es una herramienta que simplifica enormemente el trabajo, facilitando la interacción con la blockchain de Hive de una manera más intuitiva y menos compleja.

Es muy importante considerar que este código requiere ajuste de seguridad y verificaciones adicionales para que evites errores.

Ahora, hablemos de la experimentación práctica. Para probar este código, necesitarás una cuenta en Hive con suficientes recursos. Esto te permitirá experimentar de manera real. Pero, ¿qué pasa si no cuentas con estos recursos? No te preocupes, hay una solución para ello:

Al establecer una conexión con la blockchain de Hive, hay un aspecto fundamental que debes modificar para llevar a cabo pruebas sin registrar las transacciones en la blockchain.

Así que debemos cambiar lo siguiente:

hive = Hive(node=hived_nodes, nobroadcast=False, keys=[wif]) 

A esto:

hive = Hive(node=hived_nodes, nobroadcast=True, keys=[wif])

Ya que nobroadcast=True te permite probar sin que se registre la transacción en la blockchain.




Aquí el código de las funciones para crear cuentas

import random
import string
import getpass
import secrets
from beemgraphenebase.account import PasswordKey
from beem import Hive
from beem.account import Account
from beem.exceptions import AccountDoesNotExistsException
from pprint import pprint
from beem.instance import set_shared_blockchain_instance
from beem.transactionbuilder import TransactionBuilder
from beembase.operations import Custom_json

# Configuraciones Globales
hived_nodes = [
    'https://api.hive.blog',
    'https://api.deathwing.me',
    'https://anyx.io',
]

wif = "youractivekey"
hiveaccount = "lacuentaconlaquecrearascuentas"

hive = Hive(node=hived_nodes, nobroadcast=False, keys=[wif])
acc_creadora = Account(hiveaccount, blockchain_instance=hive)
set_shared_blockchain_instance(hive)


def generate_random_password(length=52):
    characters = string.ascii_letters + string.digits
    return 'P5' + ''.join(secrets.choice(characters) for i in range(length - 2))

def generate_keys(new_account_name, master_key, exclude_master=False):
    keys = {"master": master_key} if not exclude_master else {}
    for key_type in ['posting', 'active', 'owner', 'memo']:
        private_key = PasswordKey(new_account_name, master_key, key_type).get_private_key()
        keys[key_type] = {"public": str(private_key.pubkey), "private": str(private_key)}
    return keys

def keyscreate(create_acc):
    return generate_keys(create_acc, generate_random_password())

# Función Principal para Crear Cuenta
def create_acc(create_acc, keyscreate):

    activecreate = keyscreate['active']['public']
    ownercreate = keyscreate['owner']['public']
    postcreate = keyscreate['posting']['public']
    memocreate = keyscreate['memo']['public']

    op = hive.create_claimed_account(
        create_acc, 
        creator=acc_creadora, 
        owner_key=ownercreate, 
        active_key=activecreate, 
        memo_key=memocreate, 
        posting_key=postcreate, 
        combine_with_claim_account=False, 
        fee=False
    )
    return op



Para crear APIs vía Flask de Python

https://flask.palletsprojects.com/en/3.0.x/

Códigos de referencias:
https://github.com/fbslo/creator
https://github.com/ecency/create-account/blob/main/index.js


Si eres desarrollador y pruebas esas funciones y encuentras problemas de lógica.

También la forma de crear Master Key puede adaptarla a otras características para generarla de manera más segura.

Espero que te ayude un poco en tu proceso de experimentar con la blockchain Hive.

Nota: Estos son códigos de pruebas, no me responsabilizo por la perdida de activos de valor en el proceso. 

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center