Skip to main content
hivecomb

hivecomb-beem

A beem-compatible API for Hive, implemented on hivecomb.

This distribution provides the beem, beemgraphenebase, beembase and beemapi package names, and the beempy console script. Installing it in place of beem makes existing import beem code and existing beempy invocations work unchanged, with the defects catalogued in SECURITY_FINDINGS.md fixed underneath and the post-HF25 operations beem never gained made available.

pip uninstall -y beem
pip install hivecomb hivecomb-beem

It deliberately shadows beem's package names, so do not install it alongside beem.

What you get for switching

Speed, measured on the same machine with both libraries signing identical operations, pinned to one core, payload varied on every call (CPython 3.12, minimum of nine interleaved one-second windows on a CPU clock, beem 0.24.26 on the cryptography backend a default install selects):

hivecomb-beem beem 0.24.26
sign a message 70.2 µs 20.2 ms ~288×
sign a custom_json 89.3 µs 20.6 ms ~231×
sign a transfer 87.0 µs 20.6 ms ~237×
serialize and digest, no signing 10.2 µs 64.8 µs ~6.3×

beem is the least favourable comparison in the set, because it is unmaintained; the project's COMPARISON.md measures every Python, Rust and Node Hive library it names, including hive-nectar, where the gap is far smaller.

The signing rows are that wide because of which backend beem ends up on, not because Python is slow. beem prefers secp256k1 and falls back to cryptography, and on the fallback it derives each signature's recovery parameter by recovering the public key in pure Python, inside a loop that retries until the signature is canonical. The secp256k1 path would close most of the gap — but installed against a current binding it raises AttributeError: 'PrivateKey' object has no attribute 'ctx', because beem was pinned to an API that changed and has not been maintained since 2021. The fallback is what you actually get.

The last row is the fair one: serialization alone, no cryptography, ~6×.

And correctness, which matters more. beem 0.24.26's known_chains["HIVE"] is the all-zero pre-hardfork-24 chain id, so it signs against a chain that has not existed since 2020 unless you override it. That and twenty-four other findings are catalogued with file and line in SECURITY_FINDINGS.md — including one that turned out to be wrong, marked as retracted, because a catalogue you cannot check is not worth much.

Full detail — what was fixed, what diverges on purpose, what was added, what is not implemented — is in MIGRATION.md.

Tests

python test_compat.py    # beem's API, run unmodified
python test_cli.py       # beempy, offline

Two things to know before switching

  • Signing no longer contacts a node. Hive caches a block reference and refuses to serve a stale one. Call hive.refresh_block_ref() from a background task if you sign after long idle periods.
  • repr() and str() of a private key still return the secret, matching beem, because real code depends on it. Set COMB_COMPAT_REDACT_KEYS=1 once you have checked yours does not.

beempy

Every one of beem's commands is registered. The ten this layer does not provide say so and name an alternative rather than failing obscurely.

beempy commands lists everything; beempy commands --new lists the nine that have no beem equivalent — recurrenttransfer, collateralizedconvert, mnemonic, bip38, decodetx, virtualops, opsinblock, verifyauthority and commands itself.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hivecomb_beem-0.1.0.tar.gz (84.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hivecomb_beem-0.1.0-py3-none-any.whl (96.5 kB view details)

Uploaded Python 3

File details

Details for the file hivecomb_beem-0.1.0.tar.gz.

File metadata

  • Download URL: hivecomb_beem-0.1.0.tar.gz
  • Upload date:
  • Size: 84.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hivecomb_beem-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5bc1b6061199f220e18d57336288a94d9ec860b33be96e930eb79976b34edfe4
MD5 1a2a8349277a1017f53834dc56422156
BLAKE2b-256 66051f1bbebf88acc1c8177d65f026a3ade473a036c103bc93ea629a831901b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for hivecomb_beem-0.1.0.tar.gz:

Publisher: release.yml on flosolcher/hivecomb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hivecomb_beem-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hivecomb_beem-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 96.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hivecomb_beem-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 75aab079a8b0d1dbdfc5202404a87281c88a23125f229580ef45744d7e9082f5
MD5 5b2c871441ff9baaf494bb79e71e367f
BLAKE2b-256 7f0a6afa907292130e61404c060e005ed0788f057ea08489d0bea594a73a2cb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for hivecomb_beem-0.1.0-py3-none-any.whl:

Publisher: release.yml on flosolcher/hivecomb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page