ARM template of the GatherChain solution.
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
GatherChain is the solution created for my Master Thesis: Tracing Responsibility in Evolution of Model's Life Cycle in Collaborative Projects in Education in the Informatics' Department of NOVA School of Science and Technology made with professor Vasco Amaral's guidance. In the paper, it is proposed a blockchain-based solution for version control of model-driven engineering artefacts. The goal is to facilitate collaboration in a multi-user area,like the education field, and track changes in a trusted and secure manner. This solution is based on using the Hyperledger Fabric Network to govern and regulate file version control functions among students and teachers. This repository is a part of the larger GatherChain solution.
The other GatherChain projects are:
- GatherChain Desktop Client: https://github.com/Jalmeida1994/GatherChain-DesktopClient
- GatherChain Web Server: https://github.com/Jalmeida1994/GatherChain-Web-Server
- GatherChain Blockchain Server: https://github.com/Jalmeida1994/GatherChain-BlockChain-Server
- GatherChain Admin Commands: https://github.com/Jalmeida1994/GatherChain-AdminCommands
This repository serves as the Cloud infraestructure for the solution. It was chosen Azure for no particular reason. It can be made with any other Cloud provider or even on premises.
The infraestructure of the solution is made of different resources. As mentioned in the last section, these resources are platform agnostic. These resources can be found in every major cloud provider and deployed in an on premises environment:
- Azure Virtual Machine
- Azure Web App for Containers
- Docker Hub Image: jalmeida1994/gatherchain-app
- Azure Cache for Redis
In this section it'll be shown how to get started with this solution. It is fixed the Azure cloud as the cloud environment for the solution. All the commands were tested with Azure.
-
Clone the repo
git clone https://github.com/Jalmeida1994/GatherChain-ARM-Template.git
-
Change the parameters in azuredeploy.parameters.json to your needs;
-
Login to Azure in
az
if not logged yetaz login
-
Create the resource group (list of locations available with
az account list-locations -o table
)az group create --name ${resourcegroup_name} --location ${location}
-
Deploy ARM template to the previously created resource group
az deployment group create --resource-group ${resourcegroup_name} --template-file azuredeploy.json --parameters azuredeploy.parameters.json
After the template is deployed to your cloud provider of choice or on premises infraestructure, you should start the blockchain network using the admin commands found in the GatherChain Admin Commands.
For more information, please refer to the Documentation
To delete all the resources created use the az group delete
command
az group delete --name ${resourcegroup_name} -y
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
João Almeida - @João Almeida - [email protected]
Project Link: https://github.com/Jalmeida1994/GatherChain-ARM-Template