Coder Social home page Coder Social logo

aamas's Introduction

Shareholder Rights Management on a Permissioned Blockchain

The repository accompanies the academic paper:

Luke Riley, Grammateia Kotsialou, Amrita Dhillon, Toktam Mahmoodi, Peter McBurney, Richard Pearce: Deploying a Shareholder Rights Management System onto a Distributed Ledger. AAMAS 2019: 2381-2383

The code was demoed at the AAMAS Conference. To see a video of the demo, go here.

This software was developed using the Quorum blockchain, the truffle framework and nodejs.

The code creates a permissioned blockchain system, where the architecture can be seen in Architecture. That is, there are multiple access points to the data, through multiple agents, where each agent runs provides a server and website access point.

Blockchain Setup

Make sure that you have an instance of the Quorum or Ethereum blockchain running and that truffle is correctly connecting to it through its truffle-config.js file.

Next, navigate to the TruffleVersion folder, and migrate the contracts using Truffle. Afterwards you can test the contracts were deployed, again by using Truffle.

Server Setups

To spin up two servers for different different agent's access points, run the ServerForTruffle.js and ServerForTruffle2.js files in separate terminals.

You should then be able to access the website through the IP address printed on the terminal.

Website Instructions

I recommend watching the previously mentioned video, to be clear on how the website can be used. Not that a few features need to be implemented and improved. Basic instructions are as follows:

When you connect to the website, you will see a login screen. There are currently no username and passwords connected, so just proceed straight in. Note that each agent terminal connects to a different blockchain node (and uses a different public-private key pair - as far as I remember). In the future, better management of keys in all of the servers should be added.

Now that you are logged in, we need to upload some data. Go to the Data Upload page. Upload one of the company data files from the TestData folder. You now have some data in the system.

You can now proceed to create elections for the company you have uploaded, by going to the Initiate Event page and selecting Create a Vote. Proceed to fill in the required parameters.

Once an election has been implemented, you can analyse the results by going to the report page. Here you can vote also.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.