All Projects β†’ oceanprotocol β†’ Aquarius

oceanprotocol / Aquarius

Licence: apache-2.0
πŸ‹ Off-chain database store for data assets metadata.

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Aquarius

Tech Logo Memo Game
πŸ–±οΈπŸ–±οΈπŸ–•πŸ–•πŸ€―πŸ€―πŸ€―technology logo memory game, including frontend and backend
Stars: ✭ 49 (-35.53%)
Mutual labels:  backend
M680x0 Llvm
M68K LLVM Port
Stars: ✭ 62 (-18.42%)
Mutual labels:  backend
Xadmin
😘 admin system based on Laravel5.3
Stars: ✭ 70 (-7.89%)
Mutual labels:  backend
Molten Boilerplate
A boilerplate for the molten framework by Bogdanp https://github.com/Bogdanp/molten
Stars: ✭ 50 (-34.21%)
Mutual labels:  backend
Gaia
C++ framework for rapid server development
Stars: ✭ 58 (-23.68%)
Mutual labels:  backend
Elm Street
🌳 Crossing the road between Haskell and Elm
Stars: ✭ 65 (-14.47%)
Mutual labels:  backend
Express Bookshelf Realworld Example App
🐳 An Express and Bookshelf based backend implementation of the RealWorld API Spec.
Stars: ✭ 45 (-40.79%)
Mutual labels:  backend
Toggl api docs
Documentation for the Toggl API
Stars: ✭ 1,184 (+1457.89%)
Mutual labels:  backend
Layr
Dramatically simplify full‑stack development
Stars: ✭ 1,111 (+1361.84%)
Mutual labels:  backend
Bank
🏦 Full Stack Web Application similar to financial software that is used in banking institutions | React.js and Node.js
Stars: ✭ 1,158 (+1423.68%)
Mutual labels:  backend
Node Typescript Boilerplate
Minimalistic project template to jump start a Node.js back-end application in TypeScript. ESLint, Jest and type definitions included.
Stars: ✭ 1,061 (+1296.05%)
Mutual labels:  backend
Node Javascript Ecommerce
Build ECommece Like Amazona Using Vanilla JS
Stars: ✭ 57 (-25%)
Mutual labels:  backend
Mform
Spielend einfach umfangreiche Modul-Input-Formulare erzeugen.
Stars: ✭ 65 (-14.47%)
Mutual labels:  backend
Generator Http Fake Backend
Yeoman generator for building a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
Stars: ✭ 49 (-35.53%)
Mutual labels:  backend
Vos backend
vangav open source - backend; a backend generator (generates more than 90% of the code needed for big scale backend services)
Stars: ✭ 71 (-6.58%)
Mutual labels:  backend
Company Structure
A company structure with a list of projects and their users
Stars: ✭ 48 (-36.84%)
Mutual labels:  backend
Dev Practice
Practice your skills with these ideas.
Stars: ✭ 1,127 (+1382.89%)
Mutual labels:  backend
Node Clean Architecture
Clean Architecture implementation written in NodeJS
Stars: ✭ 74 (-2.63%)
Mutual labels:  backend
Jmeter Elasticsearch Backend Listener
JMeter plugin that lets you send sample results to an ElasticSearch engine to enable live monitoring of load tests.
Stars: ✭ 72 (-5.26%)
Mutual labels:  backend
Graphql Microservices
Showcasing a graphql microservice setup
Stars: ✭ 68 (-10.53%)
Mutual labels:  backend

banner

Aquarius

πŸ‹ Aquarius provides an off-chain database store for metadata about data assets. It's part of the Ocean Protocol software stack.

Note: Aquarius was formerly known as the Provider.

"Aquarius is a constellation of the zodiac, situated between Capricornus and Pisces. Its name is Latin for "water-carrier" or "cup-carrier. Aquarius is one of the oldest of the recognized constellations along the zodiac (the Sun's apparent path)."

Docker Build Status Travis (.com) Codacy coverage PyPI GitHub contributors


πŸ²πŸ¦‘ THERE BE DRAGONS AND SQUIDS. This is in alpha state and you can expect running into problems. If you run into them, please open up a new issue. πŸ¦‘πŸ²


For Aquarius Operators

If you're developing a marketplace, you'll want to run Aquarius and several other components locally, and the easiest way to do that is to use Barge. See the instructions in the Barge repository.

For Aquarius API Users

The Ocean Protocol docs site has documentation about the Aquarius API. Note that it shows the docs for the version currently deployed with the Nile Testnet. To get documentation for other versions, there is a "past versions" link at the top of the page.

If you have Aquarius running locally, you can find API documentation at http://localhost:5000/api/v1/docs or maybe http://0.0.0.0:5000/api/v1/docs.

Tip 1: If that doesn't work, then try https.

Tip 2: If your browser shows the Swagger header across the top but says "Failed to load spec." then we found that, in Chrome, if we went to chrome://flags/#allow-insecure-localhost and toggled it to Enabled, then relaunched Chrome, it worked.

If you want to know more about the ontology of the metadata, you can find all the information in OEP-8.

For Aquarius Developers

General Ocean Dev Docs

For information about Ocean's Python code style and related "meta" developer docs, see the oceanprotocol/dev-ocean repository.

Running as a Docker container

First, clone this repository:

git clone [email protected]:oceanprotocol/aquarius.git
cd aquarius/

Then build the Docker image

docker build -t "myaqua" .

Run Docker image

docker run myaqua

To test with other ocean components in barge directory compose-files/aquarius.yml change aquarius image to myaqua Then

./start_ocean.sh

Running Locally, for Dev and Test

First, clone this repository:

git clone [email protected]:oceanprotocol/aquarius.git
cd aquarius/

Then run mongodb database that is a requirement for Aquarius. MongoDB can be installed directly using instructions from official documentation. Or if you have docker installed, you can run:

docker run -d -p 27017:27017 mongo

Note that it runs MongoDB but the Aquarius can also work with BigchainDB or Elasticsearch. If you want to run ElasticSearch or BigchainDB, update the file config.ini and run the Database engine with your preferred method.

Then install Aquarius's OS-level requirements:

sudo apt update
sudo apt install python3-dev python3.7-dev libssl-dev

(Note: At the time of writing, python3-dev was for Python 3.6. python3.7-dev is needed if you want to test against Python 3.7 locally. BigchainDB needs libssl-dev.)

Before installing Aquarius's Python package requirements, you should create and activate a virtualenv (or equivalent).

The most simple way to start is:

pip install -r requirements.txt
export FLASK_APP=aquarius/run.py
export CONFIG_FILE=config.ini
flask run

That will use HTTP (i.e. not SSL/TLS).

The proper way to run the Flask application is using an application server such as Gunicorn. This allow you to run using SSL/TLS. You can generate some certificates for testing by doing:

openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

and when it asks for the Common Name (CN), answer localhost

Then edit the config file config.ini so that:

aquarius.url = http://localhost:5000

Then execute this command:

gunicorn --certfile cert.pem --keyfile key.pem -b 0.0.0.0:5000 -w 1 aquarius.run:app

Configuration

You can pass the configuration using the CONFIG_FILE environment variable (recommended) or locating your configuration in config.ini file.

In the configuration there are now two sections:

  • oceandb: Contains different values to connect with oceandb. You can find more information about how to use OceanDB here.
  • resources: In this section we are showing the url in which the aquarius is going to be deployed.
[resources]
aquarius.url = http://localhost:5000

Testing

Automatic tests are set up via Travis, executing tox. Our tests use the pytest framework.

New Version

The bumpversion.sh script helps bump the project version. You can execute the script using {major|minor|patch} as first argument, to bump the version accordingly.

License

Copyright 2018 Ocean Protocol Foundation Ltd.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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].