¡Hola Hivers!
Hoy traigo un post un poco técnico, ya que se trata de programación, en la cual voy a describir como podemos extraer datos de la red SPK a través del lenguaje de programación Python.
Como saben recientemente se inició el ciclo para el Claim Drop de los tokens SPK, si no sabes de qué trata puedes mirar este post: Ir, donde puedes aclarar las dudas más recurrentes.
Este post lo hago para todos esos programadores que están en Hive y saben Python, para que puedan observar como puedo conectarme a una API de la red SPK, para extraer datos.
Lo primero debemos considerar es tener la API en la cual vamos a hacer los requerimientos, en mi caso, voy a elegir la sugerida por el equipo de desarrollo de la red SPK:
Para hacer los requerimientos API vamos a usar el módulo requests que es uno de los usados para solicitar datos a una API.
El código base para hacer los requerimientos son los siguientes:
import requests
import re
import json
node = 'https://spkinstant.hivehoneycomb.com/'
def accountapi(ac):
urlapi = node+"@"+ac
reponse = requests.get(urlapi)
dataaccount = reponse.json()
return dataaccount
def funcionapi(comando):
'''commdand:
runners
coin
stats
queue
'''
urlapi = node+comando
reponse = requests.get(urlapi)
dataaccount = reponse.json()
return dataaccount
def accountapi(ac):
urlapi = node+"@"+ac
reponse = requests.get(urlapi)
data = reponse.json()
return data
### Test comandos
def stats():
data = funcionapi('stats')
return data
def nodos():
data = funcionapi('queue')
return data
if __name__ == "__main__":
print (stats())
print ("----------------")
print (nodos())
Resultado:
{'result': {'IPFSRate': 2000, 'MSHeld': {'HBD': 78410, 'HIVE': 406559}, 'budgetRate': 2000, 'currationRate': 2000, 'delegationRate': 2000, 'dex_fee': 'NaN', 'dex_max': '100.00', 'dex_slope': '0.00', 'gov_threshhold': 1332969, 'hashLastIBlock': 'QmRtfMXCWv3NC12NmMhdjvt1HL5FEG4XBi2Kn9ANB54kCd', 'icoPrice': 0, 'interestRate': 999999999999, 'lastBlock': 'QmbV1DaL37R2uw6B5g5zQsJXV8t5sDuLXveb6Q8FGP9Apz', 'lastIBlock': 62891400, 'liq_reward': 100, 'marketingRate': 156, 'maxBudget': 1000000000, 'movingWeight': 0, 'ms': {'active_account_auths': {'pizza.spk': 1, 'regardspk': 1, 'verbalshadow': 1}, 'active_threshold': 2, 'memo_key': 'STM5GNM3jpjWh7Msts5Z37eM9UPfGwTMU7Ksats3RdKeRaP5SveR9', 'owner_key_auths': {'STM5AAedmAPerZhzhA1f7FQCLnaidzeSoSnzRSJgMnvqVcXzaRXUK': 1, 'STM6EUEaEywYoxpeVDX1fPDxrsyQLGTsgYf1LLDSHWwiKBdgRhGrx': 1, 'STM7aLtAzKUpakSUJsrhTDhzEtWsKKwQsZcFmWMd2XDV9Tq5XH7bz': 1}, 'owner_threshold': 2, 'posting_threshold': 1}, 'multiSigCollateral': 143261041, 'nodeRate': 531, 'outOnBlock': 0, 'safetyLimit': 22012616, 'savingsRate': 1000, 'tokenSupply': 5409937181}, 'behind': 18, 'node': 'regardspk', 'VERSION': 'v1.0.3'}
----------------
{'queue': {'actifit-3speak': {'api': 'https://spknode.actifit.io', 'g': 3005208, 'l': 100}, 'andrewspk': {'api': 'https://spktoken.dlux.io/', 'g': 5193919, 'l': 100}, 'atexoras.witness': {'api': 'http://203.118.135.137:5305', 'g': 5674147, 'l': 100}, 'balvinder294': {'api': 'https://spk.tekraze.com', 'g': 1907297, 'l': 100}, 'bil.prag-node': {'api': 'https://spktoken.dlux.io', 'g': 1892774, 'l': 100}, 'carloaxie': {'api': 'http://at.drlobes.bar', 'g': 2262386, 'l': 100}, 'dluxfox': {'api': 'https://spktoken.dlux.io', 'g': 3282031, 'l': 100}, 'east.autovote': {'api': 'https://dluxspk.blurtopian.com', 'g': 150000, 'l': 100}, 'enjargames.spk': {'api': 'https://spktoken.dlux.io', 'g': 2579341, 'l': 100}, 'gotgame': {'api': 'https://spktoken.circuscodes.com', 'g': 26952, 'l': 100}, 'grand.strategy': {'api': 'https://spktoken.dlux.io', 'g': 0, 'l': 100}, 'heteroclite': {'api': 'https://spktoken.dlux.io', 'g': 3400053, 'l': 100}, 'hiveland.dapp': {'api': 'https://spktoken.dlux.io', 'g': 115543, 'l': 100}, 'mannimanccadm': {'api': 'https://spkccapi.manninote.com', 'g': 1560000, 'l': 100}, 'minibot': {'api': 'https://spktoken.dlux.io', 'g': 1231732, 'l': 100}, 'nonsowrites': {'api': 'https://spktoken.dlux.io', 'g': 0, 'l': 100}, 'phillytv': {'api': 'https://spktoken.dlux.io', 'g': 5892378, 'l': 100}, 'pizza.spk': {'api': 'https://spkcc.hive.pizza/', 'g': 1936789, 'l': 100}, 'princekham': {'api': 'http://185.130.45.228/', 'g': 1523925, 'l': 100}, 'reazul-dev': {'api': 'https://spkcc.dtools.dev', 'g': 2543991, 'l': 100}, 'regardspk': {'api': 'https://spktoken.dlux.io', 'g': 27045885, 'l': 100}, 'savvytester': {'api': 'https://spktoken.dlux.io', 'g': 44263, 'l': 100}, 'speak-scc': {'api': 'https://spktoken.dlux.io', 'g': 39671236, 'l': 100}, 'spk-hiro': {'api': 'https://spktoken.dlux.io', 'g': 5958763, 'l': 100}, 'spk-promo': {'api': 'https://spktoken.dlux.io', 'g': 6859032, 'l': 100}, 'spk.maruskina': {'api': 'https://spknode.canarysat.eu', 'g': 441833, 'l': 100}, 'spkgiles': {'api': 'https://spkgiles.hivehoneycomb.com', 'g': 8210057, 'l': 100}, 'spknode-es': {'api': 'https://spk.polen.network', 'g': 1569173, 'l': 100}, 'v4vapp': {'api': 'https://spktoken.dlux.io', 'g': 6858778, 'l': 100}, 'verbalshadow': {'api': 'https://spkcc.darkthread.tk', 'g': 3202146, 'l': 100}}, 'node': 'regardspk', 'behind': 18, 'VERSION': 'v1.0.3'}
Cabe resaltar que hay muchos más requerimientos que se pueden hacer pero en mi caso estoy probando con estos:
runners
coin
stats
queue
Consultar el saldo y la cantidad de Token Larynx (por mes) que reclamará una cuenta de HIVE:
Agregas esa función al código base:
def balance():
ac = "enrique89"
data = accountapi(ac)
return data
Correr el código y extraer los datos:
if __name__ == "__main__":
data = (balance())
balance = data['balance']/1000 ### Hay que dividir entre 1000 para que pueda dar el mondo exacto
drop = data['drop']
snap = drop['availible']
print ("---------------")
cantidad = snap['amount']/1000 ### Hay que dividir entre 1000 para que pueda dar el mondo exacto
print ('La cuenta tiene un balance de {} LARYNX y cantidad disponible por mes {} LARYNX '.format(balance, cantidad))
Resultado:
La cuenta tiene un balance de 10.301 LARYNX y cantidad disponible por mes 861.202 LARYNX
Verificamos en la página web
Listo, vemos que la información es correcta.
Esto era todo lo que quería mostrar, si eres un programador y te sabes de Python puedes comenzar a conectarte con la SPK y hacer aplicaciones que ayuden a la comunidad.
Pienso que podría crear una aplicación que sirva de alternativa para reclamar los tokens y que sea fácil desde el Tlf.
Esto es increíble y les agradezco por compartir esto. Jugaré con un poco de código este fin de semana y veré si puedo contribuir a sus esfuerzos. Mi idioma nativo es el inglés, así que disculpe cualquier ortografía ya que usé un traductor. :)
yo se lo más básico en Python, pero tengo experiencia haciendo varios códigos que se conectan con Hive, asi que experimenté haciendo algunos códigos que ayuden a crear App para SPK.
The rewards earned on this comment will go directly to the person sharing the post on Twitter as long as they are registered with @poshtoken. Sign up at https://hiveposh.com.
Congratulations @enrique89! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):
Your next payout target is 21000 HP.
The unit is Hive Power equivalent because post and comment rewards can be split into HP and HBD
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
To support your work, I also upvoted your post!
Check out the last post from @hivebuzz:
Support the HiveBuzz project. Vote for our proposal!