Official Java driver for BigchainDB created by bigchaindb.
Please note: This driver is compatible with android API 23 and later well.
BigchainDB Server | BigchainDB Java Driver |
---|---|
2.x |
1.x |
The build system supports both maven and gradle -
- In your
pom.xml
add java-driver as dependency
<dependency>
<groupId>com.bigchaindb</groupId>
<artifactId>bigchaindb-driver</artifactId>
<version>1.0</version>
</dependency>
then
mvn clean install
- In your
build.gradle
add java-driver as compiling dependency
dependencies {
compile 'com.bigchaindb.bigchaindb-driver:1.0'
}
then
./gradlew install
- If you don't have app-id and app-key, you can register one at https://testnet.bigchaindb.com/
BigchainDbConfigBuilder
.baseUrl("https://test.bigchaindb.com/")
.addToken("app_id", <your-app-id>)
.addToken("app_key", <your-app-key>).setup();
// prepare your keys
net.i2p.crypto.eddsa.KeyPairGenerator edDsaKpg = new net.i2p.crypto.eddsa.KeyPairGenerator();
KeyPair keyPair = edDsaKpg.generateKeyPair();
// New asset
Map<String, String> assetData = new TreeMap<String, String>() {{
put("city", "Berlin, DE");
put("temperature", "22");
put("datetime", new Date().toString());
}};
// New metadata
MetaData metaData = new MetaData();
metaData.setMetaData("what", "My first BigchainDB transaction");
// Set up your transaction
Transaction transaction = BigchainDbTransactionBuilder
.init()
.addAssets(assetData, TreeMap.class)
.addMetaData(metaData)
.operation(Operations.CREATE)
.buildOnly((EdDSAPublicKey) keyPair.getPublic());
// Set up your transaction
Transaction transaction = BigchainDbTransactionBuilder
.init()
.addAssets(assetData, TreeMap.class)
.addMetaData(metaData)
.operation(Operations.CREATE)
.buildAndSignOnly((EdDSAPublicKey) keyPair.getPublic(), (EdDSAPrivateKey) keyPair.getPrivate());
// Set up your transaction
Transaction transaction = BigchainDbTransactionBuilder
.init()
.addAssets(assetData, TreeMap.class)
.addMetaData(metaData)
.operation(Operations.CREATE)
.buildAndSign((EdDSAPublicKey) keyPair.getPublic(), (EdDSAPrivateKey) keyPair.getPrivate())
.sendTransaction();
public class MyCustomMonitor implements MessageHandler {
@Override
public void handleMessage(String message) {
ValidTransaction validTransaction = JsonUtils.fromJson(message, ValidTransaction.class);
}
}
// config
BigchainDbConfigBuilder
.baseUrl("https://test.ipdb.io")
.addToken("app_id", "2bbaf3ff")
.addToken("app_key", "c929b708177dcc8b9d58180082029b8d")
.webSocketMonitor(new MyCustomMonitor())
.setup();
TransactionsApi.sendTransaction(Transaction transaction) throws IOException
TransactionsApi.sendTransaction(Transaction transaction, final GenericCallback callback)
Transaction TransactionsApi.getTransactionById(String id) throws IOException
Transactions TransactionsApi.getTransactionsByAssetId(String assetId, Operations operation)
Outputs getOutputs(String publicKey) throws IOException
Outputs getSpentOutputs(String publicKey) throws IOException
Outputs getUnspentOutputs(String publicKey) throws IOException
Assets getAssets(String searchKey) throws IOException
Assets getAssetsWithLimit(String searchKey, String limit) throws IOException
Block getBlock(String blockId) throws IOException
List<String> getBlocksByTransactionId(String transactionId) throws IOException
MetaDatas getMetaData(String searchKey) throws IOException
MetaDatas getMetaDataWithLimit(String searchKey, String limit) throws IOException
Validators getValidators() throws IOException
- HTTP API Reference
- The Transaction Model
- Inputs and Outputs
- Asset Transfer
- All BigchainDB Documentation
-
inspired by http://github.com/authenteq/java-bigchaindb-driver.
-
The bigchaindb team and others including -
- @bodia
- @alvin-reyes
- @agwego
- @nf-PostQuantum
- @Rokko11
- @tzclucian
- @kremalicious
- @avanaur
- @GerardoGa
- @bakaoh
- @innoprenuer
See LICENSE and LICENSE-docs.
Exception: src/main/java/com/bigchaindb/util/Base58.java
has a different license; see the comments at the top of that file for more information.