Documentation: https://austecon.github.io/polyglot/ Powered by BitSV: https://github.com/AustEcon/bitsv
Powered by BitSV: https://github.com/AustEcon/bitsv
Polyglot is designed to be Bitcoin SV’s most intuitive way to interact with a myriad of metanet protocols through python - a match made in heaven.
The style of this library is inspired by ofek’s library bit (bitsv’s predecessor)
Here are some examples:
Polyglot extends bitsv with the polyglot.Upload class, which inherits all of the properties of the bitsv.PrivateKey class such as checking balance, unspends, sending payments etc.
Upload an image < 100kb with b:// protocol (https://github.com/unwriter/B):
>>> import polyglot
>>> uploader = polyglot.Upload('your private key goes here in WIF format')
>>> # Optional parameters shown for completeness are populated from the file path by default
>>> uploader.upload_b(file, media_type=None, encoding=None, file_name=None)
See image here: https://bico.media/252ea6d5a4a4bfc956518403f6e5aa2ced1c2590d1120cd75341e0233d1b06e3
This works for a wide range of media types.
Upload large multimedia > 100kb with bcat:// protocol (https://bcat.bico.media/):
>>> file = "C:/Users/username/Pictures/BSV_banner.jpg""
>>> uploader.upload_bcat(file)
See image here: https://bico.media/be8b6a79e66934d3419265fbf3295d03e331a4c08098ae7f817a7592ffaedd2b
Please note: For BCAT protocol, it is very important to have an adequate number of “fresh” utxos with 1 confirmation to generate the parts. To do this see #3 Utilities (next).
Basic Utilities
Some basic utilities are included for working with utxo splitting and manually extracting the media type / handling of the file based on the file path (with extension) - to cover some potentially more advanced useage patterns of the B and BCAT protocols.
>>> uploader.get_media_type_for_file_name(file) #--> media_type
>>> uploader.get_encoding_for_file_name(file) #--> encoding,
>>> uploader.get_filename(path) #--> file_name.ext)
But additionally:
>>> uploader.get_largest_utxo(self) #--> largest utxo (for splitting)
>>> uploader.split_biggest_utxo(self) #--> splits utxo into 100000 satoshi amounts
>>> uploader.filter_utxos_for_bcat(self) #-- > filters utxos with 0 conf or too low amount to handle a 100kb tx
>>> get_file_ext(file) #--> .ext
>>> calculate_txid(rawtx) #--> txid
Features
Currently Working:
1. Uploading
B:// (for multimedia up to 100kb) - https://github.com/unwriter/B
BCAT:// (for multimedia up to 310mb uncompressed, 110GB with nested gzip) - https://bcat.bico.media/
2. UTXO management
Utilities for splitting / selecting UTXOs for a single private key - especially for use in BCAT protocol.
Bip32 level UTXO management is also planned
Planned:
1. HTML reference converter
A Class that will allow for easy conversion of metanet style referencing:
B:// (ref. by txid)
C:// (ref. by sha256 hash of content)
D:// (ref. by dynamic state - linked to identity system)
To localhost paths or mainstream internet urls as well as toggling it all back and forth.
This will allow quick iteration of building a web application on the local machine but also rapid conversion to b://, c:// d:// etc. referencing styles for deployment to the blockchain.
Would just need a dictionary of {path : B:// reference} pairs for example to be swapped back and forth. Many other features in mind (possibly for another repository).
2. Downloading
Should be able to specify content by:
B:// (ref. by txid)
C:// (ref. by sha256 hash of content)
D:// (ref. by dynamic state - linked to identity system)
Should work for content uploaded via BCAT
And have it be downloaded.
If it is a static html page then should optionally allow retreival of all referenced content to reconstruct the entire webpage on the local machine.
4. “Linking / mapping / database functions”:
MAP protocol for linking all kinds of different protocols together (powerful)
(maybe) A.N.N.E. protocol by Mr Scatmann - https://medium.com/@bsmith12251960/a-n-n-e-the-alpha-testing-begins-545f809c6129
Installation
Polyglot is distributed on PyPI as a universal wheel and is available on Linux/macOS and Windows and supports Python 3.6+. pip >= 8.1.2 is required.
$ pip install polyglot-bitcoin # pip3 if pip is Python 2 on your system.
Credits
CoinGeek / nChain / Bitcoin Association for putting on an amazing hackathon from which this project was born!
Donate
Made by $AustEcon (Handcash handle)
Metadata
Release files for polyglot-bitcoin 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| polyglot-bitcoin-0.0.3.tar.gz | 9.1 kB | Details |
Release files / polyglot-bitcoin-0.0.3.tar.gz
| Download URL | polyglot-bitcoin-0.0.3.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a683f579f36155e0017f71640680cd3ab959d0b172b145f7638cd68bb590d5e3
|
|
BLAKE2b-256 checksum How to use checksums |
b6425c63d84e5af999f9e44787b43e63977fce9c26c635b993b24937ba9f2633
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1
|