Package: bigchaindb-driver
BigchainDB Python DriverFree software: Apache Software License 2.0Check ourDocumentationTable of ContentsBigchainDB Python DriverFeaturesInstallBigchainDB DocumentationUsageCompatibility MatrixLicenseCreditsChangelog0.6.2 (2018-11-03)0.6.1 (2018-10-21)0.6.0 (2018-10-20)ChangedRemovedKnown issues0.5.3 (2018-09-12)0.5.2 (2018-08-31)0.5.1 (2018-08-23)0.5.0 (2018-06-14)AddedDeprecated0.5.0a4 (2018-05-07)0.5.0a2 (2018-04-18)0.5.0a1 (2018-04-03)0.4.1 (2017-08-02)0.4.0 (2017-07-05)0.3.0 (2017-06-23)0.2.0 (2017-02-06)AddedChanged0.1.0 (2016-11-29)AddedRemoved0.0.3 (2016-11-25)AddedDeprecatedFixed0.0.2 (2016-10-28)0.0.1dev1 (2016-08-25)Added0.0.1a1 (2016-08-12)FeaturesSupport for preparing, fulfilling, and sending transactions to a BigchainDB
node.Retrieval of transactions by id.InstallThe instructions below were tested on Ubuntu 16.04 LTS. They should also work on other Linux distributions and on macOS. The driver might work on Windows as well, but we do not guarantee it. We recommend to set up (e.g. via Docker on Windows) an Ubuntu VM there.We recommend you use a virtual environment to install and update to the latest stable version usingpip(orpip3):pip install -U bigchaindb-driverThat will install the lateststableBigchainDB Python Driver. If you want to install an Alpha, Beta or RC version of the Python Driver, use something like:pip install -U bigchaindb_driver==0.5.0a4The above command will install version 0.5.0a4 (Alpha 4). You can find a list of all versions inthe release history page on PyPI.More information on how to install the driver can be found in theQuickstartBigchainDB DocumentationBigchainDB Server QuickstartThe Hitchhiker’s Guide to BigchainDBHTTP API ReferenceAll BigchainDB DocumentationUsageExample: Create a divisible asset for Alice who issues 10 token to Bob so that he can use her Game Boy.
Afterwards Bob spends 3 of these tokens.If you want to send a transaction you need toDetermine the BigchainDB Root URL.# import BigchainDB and create an objectfrombigchaindb_driverimportBigchainDBbdb_root_url='https://example.com:9984'bdb=BigchainDB(bdb_root_url)# generate a keypairfrombigchaindb_driver.cryptoimportgenerate_keypairalice,bob=generate_keypair(),generate_keypair()# create a digital asset for Alicegame_boy_token={'data':{'token_for':{'game_boy':{'serial_number':'LR35902'}},'description':'Time share token. Each token equals one hour of usage.',},}# prepare the transaction with the digital asset and issue 10 tokens for Bobprepared_token_tx=bdb.transactions.prepare(operation='CREATE',signers=alice.public_key,recipients=[([bob.public_key],10)],asset=game_boy_token)# fulfill and send the transactionfulfilled_token_tx=bdb.transactions.fulfill(prepared_token_tx,private_keys=alice.private_key)bdb.transactions.send_commit(fulfilled_token_tx)# Use the tokens# create the output and inout for the transactiontransfer_asset={'id':fulfilled_token_tx['id']}output_index=0output=fulfilled_token_tx['outputs'][output_index]transfer_input={'fulfillment':output['condition']['details'],'fulfills':{'output_index':output_index,'transaction_id':transfer_asset['id']},'owners_before':output['public_keys']}# prepare the transaction and use 3 tokensprepared_transfer_tx=bdb.transactions.prepare(operation='TRANSFER',asset=transfer_asset,inputs=transfer_input,recipients=[([alice.public_key],3),([bob.public_key],7)])# fulfill and send the transactionfulfilled_transfer_tx=bdb.transactions.fulfill(prepared_transfer_tx,private_keys=bob.private_key)sent_transfer_tx=bdb.transactions.send_commit(fulfilled_transfer_tx)Compatibility MatrixBigchainDB ServerBigchainDB Driver>= 2.0.0b70.6.2>= 2.0.0b70.6.1>= 2.0.0b70.6.0>= 2.0.0b50.5.3>= 2.0.0b50.5.2>= 2.0.0b50.5.1>= 2.0.0b10.5.0>= 2.0.0a30.5.0a4>= 2.0.0a20.5.0a2>= 2.0.0a10.5.0a1>= 1.0.00.4.x== 1.0.0rc10.3.x>= 0.9.10.2.x>= 0.8.2>= 0.1.3Although we do our best to keep the master branches in sync, there may be
occasional delays.Licenselicenses- open source & open contentCreditsThis package was initially created usingCookiecutterand theaudreyr/cookiecutter-pypackageproject template. Many BigchainDB developers have contributed since then.Changelog0.6.2 (2018-11-03)ChangedIn setup.py, changed python-rapidjson==0.6.0 to ~=0.6.0,
and changed requests>=2.11.0 to >=2.20.00.6.1 (2018-10-21)FixedFixed the problem with a docs page (Handcrafting Transactions) that wouldn’t build.0.6.0 (2018-10-20)ChangedAdded support for deterministic keypair generation from a 32-byte seed.
See pull request #487 by external contributor @excerebrosePinned cryptoconditions==0.8.0 in setup.pyRemovedThe send() function was removed. See pull request #483.Known issuesBuilds of the Handcrafting Transactions page started failing again,
in Travis CI and on ReadTheDocs.0.5.3 (2018-09-12)ChangedFixed a failing unit testPinned cryptoconditions==0.7.2 in setup.pyFixed the Handcrafting Transactions page in the docs0.5.2 (2018-08-31)AddedCap exponential backoff depending on timeout value for reasonable waiting time in event of network recovery.#470 <https://github.com/bigchaindb/bigchaindb-driver/pull/470>Update cryptoconditions dependency because of security vulnerability CVE-2018-10903.#472 <https://github.com/bigchaindb/bigchaindb-driver/pull/472>0.5.1 (2018-08-23)AddedSupport for BigchainDB server v2.0.0.b5.added round-robin strategy to connect to nodes of the BigchainDB networkBEP 140.5.0 (2018-06-14)AddedAdded three new methods to send/post a transaction as discussedhere:send_commitsend_asyncsend_syncDeprecatedsend()underTransactionEndpoint, and available
viaBigchainDB.transactions. Replaced by the above three methods:send_commit(),send_async(), andsend_sync().0.5.0a4 (2018-05-07)Removed dependencies from BigchainDB Server package.0.5.0a2 (2018-04-18)The default mode for sending a transaction is now commit.The metadata endpoint was added.Support for BigchainDB server v2.0.0a2.0.5.0a1 (2018-04-03)There weremanychanges between BigchainDB 1.3 and BigchainDB 2.0 Alpha, too many to list here. We wrote a series of blog posts to summarize most changes, especially those that affect end users and application developers:Some HTTP API Changes in the Next Release.Three Transaction Model Changes in the Next Release.0.4.1 (2017-08-02)FixedHandcrafting transactions documentation.Pull request #312.Quickstart guide.Pull request #316.0.4.0 (2017-07-05)AddedSupport for BigchainDB server (HTTP API) 1.0.0.0.3.0 (2017-06-23)AddedSupport for BigchainDB server (HTTP API) 1.0.0rc1.Support for crypto-conditions RFC draft version 02.Added support for text search endpoint/assets?search=0.2.0 (2017-02-06)AddedSupport for BigchainDB server 0.9.Methods forGET /andGET /api/v1ChangedNode URLs, passed toBigchainDB()MUST not include the api prefix'/api/v1', e.g.:BEFORE:http://localhost:9984/api/v1NOW:http://localhost:99840.1.0 (2016-11-29)AddedSupport for BigchainDB server 0.8.0.Support for divisible assets.Removedcreate()andtransfer()underTransactionEndpoint, and available
viaBigchainDB.transactions. Replaced by the three “canonical”
transaction operations:prepare(),fulfill(), andsend().Support for client side timestamps.0.0.3 (2016-11-25)AddedSupport for “canonical” transaction operations:preparefulfillsendDeprecatedcreate()andtransfer()underTransactionEndpoint, and available
viaBigchainDB.transactions. Replaced by the above three “canonical”
transaction operations:prepare(),fulfill(), andsend().FixedBigchainDB()default node setting on its transport class. See commit0a802060.0.2 (2016-10-28)AddedSupport for BigchainDB server 0.7.00.0.1dev1 (2016-08-25)Development (pre-alpha) release on PyPI.AddedMinimal support forPOST(viacreate()andtransfer()), andGEToperations on the/transactionsendpoint.0.0.1a1 (2016-08-12)Planning release on PyPI.