update for beem: include support for HIVE

in HiveDevs2 years ago (edited)

Repository

https://github.com/holgern/beem


beem-logo

beem is a python library for STEEM and HIVE. The current version is 0.22.5.

There is also a discord channel for beem: https://discord.gg/4HM592V

The newest beem version can be installed by:

pip install -U beem

Changelog

  • Add HIVE chain
  • improve hive chain detection
  • add hive option to nodes in Nodelist
  • new is_hive property of steem object
  • Add two new hive api nodes
  • Fix bug in ecdsa
  • Add workaround to allow transfers of HIVE/HBD in HIVE (operation need to use STEEM/SBD internally)

Using beem with HIVE

There are three ways to use beem with HIVE:

Set a hive node:

from beem import Steem
hive = Steem("https://api.hive.blog")
print(hive.is_hive)

True
If a hive node is currently set, can be checked with the is_hive property.

Set hive nodes with beempy

This beempy commend fetches all currently working HIVE nodes from the @fullnodeupdate metadata (nodes are checked every hour) and stores them in the beem config database.

beempy updatenodes --hive

In a python script, beem is using now only hive nodes.

from beem import Steem
from beem.account import Account
hive = Steem()
print(hive.is_hive)
print(hive.rpc.nodes)
acc = Account("holger80")
print(acc.steem.is_hive)
True
['https://api.hive.blog', 'http://anyx.io', 'https://api.hivekings.com', 'https://anyx.io']
True

Set hive nodes with nodelist

A list of hive nodes can also be obtained by the NodeList class:

from beem import Steem
from beem.nodelist import NodeList
nodelist = NodeList()
nodelist.update_nodes()
nodes = nodelist.get_nodes(hive=True)
hive = Steem(node=nodes)
print(hive.is_hive)

Let me know if you found bugs by using beem with HIVE.

Sort:  

thanks for your work... I just updated beem I was using since a while already and when I try to upvote I get this error 'PointJacobi' object has no attribute '_Point__x'

Solved with old school uninstall reinstall LOL

So great to see so many great DApps launching on Hive!
I'm discovering DApps that I didn't know about when they were on Steem, like hive.invite.

What’s the exact hiveinvite’s URL?
Thanks, @apshamilton! 🙏

Thanks, mate!
I was already a user of steeminvite.com and I can't login on hiveinvite (it works with other accounts)... I'll wait, maybe the porting isn't yet finisched.

Cheers and thanks for your kind reply!

Loading...
Options:
  -s, --show              Prints the updated nodes
  -t, --hive              Use only HIVE nodes, when set to true.
  -t, --test              Do change the node list, only print the newest nodes
                          setup.

There is a typo in your optparse. -t, --hive conflicts with -t,--test.

Thanks, I will fix this.

So is this beem thing just for node discovery, or can it sign and broadcast arbitrary transactions?

I've been looking for a transaction signer since I joined Steem. I want to make an open source application front end for my favorite social medium, which is now Hive.

I'd prefer Java, but I'm sure I can somehow work around it if this actually works for signing any transaction.

Good to see you back

Welcome back!

@nextcolony on HIVE dyou know?!

Woah so happy to see you posting!!

:DDDD amazing welcome back

Great news! More support to #HIVE!

python lib, very good

can you make it, so we could import:

from beem import Hive

?

Steem will be misleading and what is not less important, I do not want to have "Steem" in my source code anymore :P

Good idea, also the steem_instance variable should be changed.

@holger80, This is excellent news. Well, I had seen your comment but this makes a lot more clear.

On a different note, Can beem support other Graphene chains like Bitshares and Peerplays without much modifications ? I was thinking of exploring it and if you have done work already it will be helpful.

There is a great python library for bitshares:
https://github.com/bitshares/python-bitshares

I am aware of that :) its just that I am a fan of beem ;-)

Awesome stuff! I love how we're all collaborating to build Hive.

Used your library. Thanks a lot!

Welcome back :)

When using Comment() getting AttributeError: 'Amount' object has no attribute 'split' from line 99 in comment.py.

Really appreciate it! :) So quick

Great work, but - as you asked me - according to my own new rule I flag posts with pending rewards > 80 dollars.

I am trying to get around using hivesigner. Does Beem require hivesigner for offline posting?

When I use the following code to complete the transfer

from beem.account import Account
from beem import Steem
active_wif = "5xxxx"
stm = Steem(keys=[active_wif])
acc = Account("test", steem_instance=stm)
acc.transfer("test1", 1, "HIVE", "test")

there are always errors:

beemapi.exceptions.MissingRequiredActiveAuthority

My Python version is 2.7
I'm sure my active-key is correct

It is fixed in 0.22.5