Adding a Dataset Record Asynchronously

This sample creates a dataset comprising string records if one does not exist and adds a record to the dataset. The sample uses async methods to commit a dataset and records and illustrates async operation using asyncio.


A set is a collection of objects. A named set of data records is a dataset. Such datasets can implement any point-in-time (PIT) or bitemporal data and prove this provenance to third parties. The sample demonstrates the higher-order async vBase dataset and string record abstractions that hide the details of the object and record content id (CID) calculation (hashing). This example builds on the code and illustrates async methods.

Detailed Description:

  • Create a vBase object using a Web3 HTTP commitment service. The commitment service is a smart contract running on a blockchain. The initialization uses connection parameters specified in environment variables:

    vbc = VBaseClient.create_instance_from_env()
  • Create the test dataset asynchronously. This factory method constructs a VBaseDatasetAsync object using the asyncio event loop. Arguments and mechanics are similar to those of VBaseDataset object creation.

    VBaseDatasetAsync.create(vbc, name=SET_NAME, record_type=VBaseStringObject)
  • Add string record to the dataset asynchronously. This method makes an object commitment using the asyncio event loop. Arguments and mechanics are similar to those of ds.add_record() call:

  • Verify that a given set commitment exists for a given user. This will typically be called by the data consumer to verify a producer's claims about dataset provenance:

    assert ds.verify_commitments()[0]

Last updated