All Projects → blockchain-unica → Blockapi

blockchain-unica / Blockapi

Licence: gpl-3.0
A general framework for blockchain analytics

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Blockapi

Ether sql
A python library to push ethereum blockchain data into an sql database.
Stars: ✭ 41 (-63.06%)
Mutual labels:  blockchain, ethereum, sql, analytics
Rotki
A portfolio tracking, analytics, accounting and tax reporting application that protects your privacy
Stars: ✭ 689 (+520.72%)
Mutual labels:  blockchain, ethereum, bitcoin, analytics
Masterblockchain
Stars: ✭ 100 (-9.91%)
Mutual labels:  blockchain, ethereum, bitcoin
Token Core Ios
a blockchain private key management library on iOS
Stars: ✭ 850 (+665.77%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchain
区块链、交易所、币种、自媒体、高频交易策略
Stars: ✭ 37 (-66.67%)
Mutual labels:  blockchain, ethereum, bitcoin
Multy Back
Back-end of the Multy - mobile multy-blockchain wallet.
Stars: ✭ 26 (-76.58%)
Mutual labels:  blockchain, ethereum, bitcoin
Awesome Blockchain
⚡️Curated list of resources for the development and applications of blockchain.
Stars: ✭ 937 (+744.14%)
Mutual labels:  blockchain, ethereum, bitcoin
Diadata
DIAdata.org platform
Stars: ✭ 103 (-7.21%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchain Reading List
Blockchain Manchester Meetups, Talks and Reading List
Stars: ✭ 17 (-84.68%)
Mutual labels:  blockchain, ethereum, bitcoin
Udacity Blockchain Developer Nanodegree
The road so far on Udacity Blockchain Developer Nanodegree
Stars: ✭ 53 (-52.25%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchainage
「区块链技术指北」相关资料。
Stars: ✭ 51 (-54.05%)
Mutual labels:  blockchain, ethereum, bitcoin
Cryptolights
Live visualisation of blockchain transactions for popular cryptocurrencies
Stars: ✭ 54 (-51.35%)
Mutual labels:  blockchain, ethereum, bitcoin
Aeternity
æternity: solving scalability problems by making sense of state-channels
Stars: ✭ 923 (+731.53%)
Mutual labels:  blockchain, ethereum, bitcoin
Node
Stampery API for NodeJS. Notarize all your data using the blockchain
Stars: ✭ 23 (-79.28%)
Mutual labels:  blockchain, ethereum, bitcoin
Awesome Cryptocurrency Security
😎 Curated list about cryptocurrency security (reverse / exploit / fuzz..)
Stars: ✭ 102 (-8.11%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchain
블록체인 공부 중입니다.
Stars: ✭ 22 (-80.18%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchain Anchor
A Node.js library for anchoring data onto the Bitcoin blockchain and confirming anchored data on Bitcoin and Ethereum.
Stars: ✭ 32 (-71.17%)
Mutual labels:  blockchain, ethereum, bitcoin
Blockchain
Compilation of useful documents and scientific papers about Blockchain & cryptocurrencies.
Stars: ✭ 751 (+576.58%)
Mutual labels:  blockchain, ethereum, bitcoin
Awesome Cryptoeconomics
An awesome curated list of Cryptoeconomic research and learning materials
Stars: ✭ 763 (+587.39%)
Mutual labels:  blockchain, ethereum, bitcoin
Whale
🐋 Show Ethereum and Bitcoin price in command line interface (CLI).
Stars: ✭ 81 (-27.03%)
Mutual labels:  blockchain, ethereum, bitcoin

BlockAPI: Blockchain analytics API

BlockAPI is a general-purpose blockchain analytics Scala API, maintained by Livio Pompianu and Stefano Lande of the [email protected] Lab at the University of Cagliari, under the supervision of Massimo Bartoletti.

The standard workflow of BlockAPI consists of two steps:

  1. construct a view of the blockchain (possibly, including external data) and save it in a database;
  2. analyse the view by using the query language of the database.

BlockAPI currently supports Bitcoin and Ethereum, and the DBMS MongoDB, MySQL, PostgreSQL, and Fuseki.

Documentation

Prerequisites

General prerequisites

BlockAPI requires Java JDK 1.8, and it supports the following blockchain clients and DBMSs:

  1. Blockchain clients:
    • Bitcoin Core (Tested with version v0.19.0.1: extracts data from Bitcoin)
    • Parity (Tested with version v2.6.8: extracts data from Ethereum)
  2. DBMS:
    • MongoDB (Tested with version v4.2: constructs a NoSQL view of the data)
    • MySQL (Tested with version v5.7: constructs a SQL view of the data)
    • PostgreSQL (Tested with version v11: constructs a SQL view of the data)
    • Apache Jena Fuseki (Tested with version v3.14.0: constructs a RDF view of the data)

BlockAPI may be used either as an IDE for executing a Scala SBT projects (e.g. IntelliJ IDEA), or via command line (in this case, you need to install SBT.

Further prerequisites may depend on the specific analyses one wants to implement.

Required libraries

This step is required to sucessfully compile the project. Before building the project, execute the following commands:

Bitcoinj
git clone https://github.com/stefanolande/bitcoinj.git
cd bitcoinj
mvn install -DskipTests
cd core
mvn install -DskipTests

Installation

  1. Execute the blockchain client in order to obtain a local copy of the target blockchain (this process may take several hours)
  2. Enable the client RPC calls.
    • In the Bitcoin Core case
      bitcoind -datadir=path/to/blockchain -server -rpcuser=user -rpcpassword=password -rpcserialversion=0
      
  3. Run a localhost instance of the DBMS on the default port.
  4. Clone this repository.
  5. From your IntelliJ welcome screen: select "Import Project" and open the build.sbt file from your repository directory.

Execution

You can test BlockAPI through one of the use cases in the repository. To do this, either:

  • open the file from your IDE and select run or
  • via command line: from the root directory of the project, execute bash sbt "runMain it.unica.blockchain.analyses.ClassName"

Once BlockAPI has built the database, you can query it using one of the available queries.

Acknowledgments

The project has been supported by several developers at the Department of Mathematics and Computer Science of the University of Cagliari, Italy.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].