Since 2009, we have been utilizing our extensive expertise in blockchain technologies to help businesses, both large and small, maximize their efficiency.
Explore More
With more than 400+ experts, Oodles comprises a fantastic resource of business knowledge that spans multiple industries. Whatever the circumstances, we keep to our obligations.
Explore More
At Oodles, we help our clients work with a human understanding but at superhuman speed something that others can't. They thus advance and maintain their lead
BigchainDB is a development platform that has blockchain properties such as decentralization, permanence, proprietor controlled resources, etc., and database properties such as high exchange rate, low inertness, ordering and questioning of organized information. It was first discharged—open source—in February 2016 and has been enhanced continuously from that point forward.
BigchainDB can serve a myriad of use cases. Wherever there is a requirement for immutable data highlighting digital assets, BigchainDB can come in use. There are numerous industries which can use BigchainDB features for their benefits. In this blog, we will be creating an application using BigchainDB in Python.
To use BigchainDB we need to install BigchainDB driver for this command pip3 install -U bigchaindb-driver To connect with BigchainDB we use url that is bdb_root_url = 'http://localhost:9984' # this is your local set up BigchainDb url If you have not set up Bigchaindb locally then you can use BigchainDB testnet url that is bdb_root_url = ‘https://test.bigchaindb.com’ # this is testnet url of BigchainDB If we use testnet url then we will pass App_id & app_key that we will find after signup on url https://testnet.bigchaindb.com/ 2. To connect with BigchainDB We will import this class from bigchaindb_driver import BigchainDB Add appi_id & app_key in header of url like this bdb = BigchainDB( 'https://test.bigchaindb.com', headers={'app_id': 'da9c76b6' 'app_key': '34f1acaf209503732a3521afb184560a'}) 3. Create private key & public key. Import this class to create private key & public key from bigchaindb_driver.crypto import generate_keypair & create by this method user1, user2 = generate_keypair(), generate_keypair() 3. Code of creating asset . from bigchaindb_driver import BigchainDB from bigchaindb_driver.crypto import generate_keypair user1, user2 = generate_keypair(), generate_keypair() bdb = BigchainDB( 'https://test.bigchaindb.com', headers={'app_id': 'da9c76b6', 'app_key': '34f1acaf209503732a3521afb184560a'}) Test_asset = { 'data': { 'test22': { 'serial_number': 'abcd123412', 'manufacturer': 'bkfabahr' }, }, } Test_asset_metadata = { 'country': 'india' } prepared_creation_tx = bdb.transactions.prepare( operation='CREATE', signers=user1.public_key, asset=Test_asset, metadata=Test_asset_metadata ) fulfilled_creation_tx = bdb.transactions.fulfill( prepared_creation_tx, private_keys=user1.private_key ) sent_creation_tx = bdb.transactions.send_commit(fulfilled_creation_tx) print('create') print(sent_creation_tx) txid = fulfilled_creation_tx['id'] b = bdb.transactions.get(asset_id=txid) print('b') print(b) Response-> after successfull run code create {'asset': {'data': {'bicycle': {'manufacturer': 'bkfab', 'serial_number': 'abcd1234'}}}, 'id': 'd7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0', 'inputs': [{'fulfillment': 'pGSAIIg31Ki3DZbYOAZMnBmVgV0-hfy_xeDiz9d83I6jBmxagUBKbgqZksjvhMAeyGPSHNDnIjBqmgM8qVdy641Z0PQNB27dbZNYsnGac2fgzkZxXyDx6YqBx1WNCG-wT8BCTokL', 'fulfills': None, 'owners_before': ['AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw']}], 'metadata': {'planet': 'earth'}, 'operation': 'CREATE', 'outputs': [{'amount': '1', 'condition': {'details': {'public_key': 'AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw', 'type': 'ed25519-sha-256'}, 'uri': 'ni:///sha-256;oFneJQzJm7Nq5k786xXdDRUCd-48WFQ1HLlkyojar3M?fpt=ed25519-sha-256&cost=131072'}, 'public_keys': ['AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw']}], 'version': '2.0'} 4. Transfer Asset ownership. We are transfer previously created transaction transfer_asset = { 'id': asset_id } output_index = 0 output = fulfilled_creation_tx['outputs'][output_index] transfer_input = { 'fulfillment': output['condition']['details'], 'fulfills': { 'output_index': output_index, 'transaction_id': fulfilled_creation_tx['id'] }, 'owners_before': output['public_keys'] } prepared_transfer_tx = bdb.transactions.prepare( operation='TRANSFER', asset=transfer_asset, inputs=transfer_input, recipients=user2.public_key, ) fulfilled_transfer_tx = bdb.transactions.fulfill( prepared_transfer_tx, private_keys=alice.private_key, ) sent_transfer_tx = bdb.transactions.send_commit(fulfilled_transfer_tx) print('sent_transfer_tx') print(sent_transfer_tx) Response are like this of transfer asset -> {'asset': {'id': 'd7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0'}, 'id': '0ee2929a01e949fe051d1cfaaa643556e6f5caef5d9fb932dae241a9efe98f65', 'inputs': [{'fulfillment': 'pGSAIIg31Ki3DZbYOAZMnBmVgV0-hfy_xeDiz9d83I6jBmxagUB3Lj4-f5VhdYkiMLuWDrUhctY-_wQVvOcCdtLy0o7zaMGl-rPmx8k0wK0WXdz-24gkOqqDkJh9fp8uB7RQkNIB', 'fulfills': {'output_index': 0, 'transaction_id': 'd7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0'}, 'owners_before': ['AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw']}], 'metadata': None, 'operation': 'TRANSFER', 'outputs': [{'amount': '1', 'condition': {'details': {'public_key': '7STQGzddjH2RiiQEedxatVuoi7CqV7NbPPWRxaubaTke', 'type': 'ed25519-sha-256'}, 'uri': 'ni:///sha-256;JpyXA6_WsPe-MEyBTchq0XVGsqBR_BnmF1fZI0PD8Qc?fpt=ed25519-sha-256&cost=131072'}, 'public_keys': ['7STQGzddjH2RiiQEedxatVuoi7CqV7NbPPWRxaubaTke']}], 'version': '2.0'} 5. Get transaction details Code of get transaction details from bigchaindb_driver import BigchainDB from bigchaindb_driver.crypto import generate_keypair bdb = BigchainDB( 'https://test.bigchaindb.com', headers={'app_id': 'da9c76b6', 'app_key': '34f1acaf209503732a3521afb184560a'}) print('txid') b = bdb.transactions.get(asset_id='d7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0') print('b') print(b) Response are like this [{'inputs': [{'owners_before': ['AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw'], 'fulfills': None, 'fulfillment': 'pGSAIIg31Ki3DZbYOAZMnBmVgV0-hfy_xeDiz9d83I6jBmxagUBKbgqZksjvhMAeyGPSHNDnIjBqmgM8qVdy641Z0PQNB27dbZNYsnGac2fgzkZxXyDx6YqBx1WNCG-wT8BCTokL'}], 'outputs': [{'public_keys': ['AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw'], 'condition': {'details': {'type': 'ed25519-sha-256', 'public_key': 'AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw'}, 'uri': 'ni:///sha-256;oFneJQzJm7Nq5k786xXdDRUCd-48WFQ1HLlkyojar3M?fpt=ed25519-sha-256&cost=131072'}, 'amount': '1'}], 'operation': 'CREATE', 'metadata': {'planet': 'earth'}, 'asset': {'data': {'bicycle': {'serial_number': 'abcd1234', 'manufacturer': 'bkfab'}}}, 'version': '2.0', 'id': 'd7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0'}, {'inputs': [{'owners_before': ['AAjpnRqzJRhS8xpQsXNLV1hdaB8gUwgE41qJhinfGtqw'], 'fulfills': {'transaction_id': 'd7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0', 'output_index': 0}, 'fulfillment': 'pGSAIIg31Ki3DZbYOAZMnBmVgV0-hfy_xeDiz9d83I6jBmxagUB3Lj4-f5VhdYkiMLuWDrUhctY-_wQVvOcCdtLy0o7zaMGl-rPmx8k0wK0WXdz-24gkOqqDkJh9fp8uB7RQkNIB'}], 'outputs': [{'public_keys': ['7STQGzddjH2RiiQEedxatVuoi7CqV7NbPPWRxaubaTke'], 'condition': {'details': {'type': 'ed25519-sha-256', 'public_key': '7STQGzddjH2RiiQEedxatVuoi7CqV7NbPPWRxaubaTke'}, 'uri': 'ni:///sha-256;JpyXA6_WsPe-MEyBTchq0XVGsqBR_BnmF1fZI0PD8Qc?fpt=ed25519-sha-256&cost=131072'}, 'amount': '1'}], 'operation': 'TRANSFER', 'metadata': None, 'asset': {'id': 'd7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0'}, 'version': '2.0', 'id': '0ee2929a01e949fe051d1cfaaa643556e6f5caef5d9fb932dae241a9efe98f65'}] 6. To Check tranaction have successfully send or not ! from bigchaindb_driver import BigchainDB from bigchaindb_driver.crypto import generate_keypair bdb = BigchainDB( 'https://test.bigchaindb.com', headers={'app_id': 'da9c76b6',b 2523 'app_key': '34f1acaf209503732a3521afb184560a'}) b = block_height = bdb.blocks.get(txid='d7fb62d90f1c67861e520cffeb6e7c6a62ed3b7ba335ebfc784c8baba46592a0') print('Block Number') print(b) Response -> this will show block number thats hold the transaction details Block Number 2523 Source: https://docs.bigchaindb.com/projects/py-driver/en/latest/usage.html
Mudit is a skilled content writer specializing in SEO, creative, technical, and research-driven content. With a focus on Blockchain, cryptocurrency, and emerging technologies, he crafts high-quality, error-free content for global audiences. His portfolio includes clients like Poly187, BabyFlix, Freebird, BlocSport, and more. Proficient in American, British, and international English, Mudit delivers polished content across industries like healthcare, real estate, and sports.
By using this site, you allow our use of cookies. For more information on the cookies we use and how to delete or block them, please read our cookie notice.
We would love to
hear from you!
Innovate with confidence!