Code Monkey home page Code Monkey logo

gui-demo's Introduction

Content Blockchain GUI Prototype v1.0.2

Build status

A proof of concept GUI Application for the Content Blockchain.

The Content Blockchain Project is building the foundational tools that enable journalists, publishers, and media start-ups to create new innovative products, services and business models in the open blockchain economy.

This software allows you to run a full content blockchain node on your computer and participate in testing the plattform. It allows you to:

  • run your own blockchain-node (testnet)
  • create an account on the blockchain
  • test the experimental voting based consensus
  • send and receive native blockchain coins
  • timestamp content on the blockchain
  • search, create and register ISCC content identifiers
  • send and receive smart license tokens

An installable version is currently available for 64-Bit Windows. You can download it here. If you need help or have questions you can reach us via Telegram: https://t.me/ContentBlockchainBeta

Please report any issues at https://github.com/coblo/gui-demo/issues

Overview

Wallet

Content is registered via transactions that are replicated and stored on the blockchain. Infrastructure providers are rewarded with native currency (CBL) for their services. The wallet screen shows your balance and transaction history. You may exchange CBL with other participants.

ISCC

The ISCC is an open and decentralized digital media identifier. You can search for content registered with an ISCC and generate/register new ISCCs for text and image content. When generating a new ISCC you will also see if your content or similar content has been registered before.

Smart Licenses

Here you can send an recieve smart license tokens. These are custom tokens that allow you to own and resell a license as if it were a physical object. Smart Licenses and corresponding tokens can be generated with our Smart License Web Demo.

Timestamping

A minimal demonstration of simple content timestamping. Here you can create, search and optionally register a unique cryptographic fingerprint (SHA256 hash) of any document or file. You may also add a short comment to your timestamp entry on the blockchain.

Community

Demonstration of a decentralized voting based governance. Participants that operate full nodes on the network can become Validators and earn tokens for their services. Guardians determine Validators by on-chain voting.

Development Setup

If you want to contribute or just play around with the code you will need Python 3.5 on your system. The application is cross platform and should generally work on any 64-Bit Linux, Mac or Windows. Please be aware that this is a "Proof of Concept" and the code is not meant to be production grade. These are the steps to get your hands dirty:

  • Checkout this repository to you machine
  • Optionaly create a virtual environment for the project
  • Install python dependencies with pip install -r requirements.txt
  • Download multichaind binaries and place them in /app/bin
  • Compile QT .ui files with comile_ui.py

Now you should be able to run main.py. Launching the application will check if you have a profile.db SQLite file in your systems app data folder. For example on Windows that would be C:\Users\YOURUSERNAME\AppData\Local\Content-Blockchain\Coblo\profile.db. If that file does not exist the application will guide you through the setup wizard to create a profile.db and a blockchain address.

By default the application will manage the multichaind node proccess. For development you might want to manage the process yourself. See runchain.example.bat for how to manually start a MultiChain node on Windows. The first time setup wizard also allows to specify connection data for you manually managed node.

By installing the requirements-dev.txt dependencies you will also be able to create frozen app builds and edit .ui files with QT-Designer. The Windows build/dist is created with python setup.py bdist_msi. pyqt5-tools will install the QT-Designer executable to your python site-packages/pyqt5-tools folder.

Credits

The Content Blockchain Project received funding from the Google Digital News Initiative.

This application was build with Python, PyQT, MultiChain, and many other open source libraries and tools. Our thanks go out to the entire open source community.

gui-demo's People

Contributors

titusz avatar patricia92 avatar alemenke avatar

Stargazers

 avatar  avatar Mohamed Monir Ali AL Keshita avatar  avatar isspek avatar Mirlo avatar AlexZhang avatar Cyrill Martin avatar Natalie Sablowski avatar maddb3457 avatar  avatar Karan Verma avatar tevanraj avatar Kevin Abney avatar  avatar Saransh Sharma avatar Jeison Pacateque avatar Timo Fitzka avatar Timon avatar  avatar Florian Scholz avatar  avatar  avatar  avatar  avatar Christian avatar  avatar Sven Grunewaldt avatar Sebastian Posth avatar Kira avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar Alexander avatar Jeison Pacateque avatar  avatar Sebastian Posth avatar Cédric Monnier avatar Timo Fitzka avatar  avatar

gui-demo's Issues

Timestamping finished not obvious

After clicking "Register Timestamp" it is not obvious to the user that the process is finished. The only option is to click "Reset" to start another run, which is irritating at best.

Validator/Gaurdian table revokes column

The revokes column should show the number of revoking votes and the total number of votes needed to end the voting. This is based on the admin-consensus-mine setting of the chain parameters.

Timestamping demo

We should include a first minimal demo application besides the wallet & community panels with the first public release. Document time stamping would be a low hanging fruit.

uninstall doesn't remove local data

C:\Users[user]\AppData\Local\Content-Blockchain\coblo still exists after uninstall.

which could make sense in some cases to prevent loosing important data after uninstall, but user should have the option or at least should be warned that his wallet still exists on the computer after uninstall

Action on Buttons "Apply as Validator/Guardian"

On the community page in the Validator and Guardians tabs there are buttons to apply for those skills (only shown if you do not already have those skills). They don´t do anything currently. We could show some info popup on how to apply (via telegram or so) before we offer users to apply via stream publishing

Handling first time use and 0 balance.

With a fresh installation of the application the newly generated address does not have any native balance. To be able to do any transactions the user needs one or multiple options to get some initial native currency.
We should consider creating a first time use wizard that guides the user through a setup kind of experience ... details to be planned.

Implement revoke actions

The revoke actions Validators/Guardians tables in the community panel need to actually trigger the revoking transactions. We should also find a way to track if the user has already sent a revoke for somebody so he cannot send multiple revokes for the same entry. While multiple revokes for the same entry have no effect on the vote they do produce transaction costs.

More sane rpc api polling

Currently all sync functions hammer the nodes rpc-api in rotation. We should find a more sane way that only polls for block/transaction updates in rotation and triggers more involved sync function if there actually is a new block/transaction.

Ability to backup and recover an account.

When the multichain node connects to the network for the first time automatically creates a wallet with a random address. Users should be able to backup the private keys of that address. It should also be possible for users to initialize a node with an existing address/private key.

Alias setting on 0 balance gives false sense of success

On a fresh installation with 0 balance I can set my alias. There is no error message and the gui shows my newly set alias. Setting or changing the alias should give information about the fact that the alias change has been requested. The new alias should only be shown if it is confirmed on the blockchain. A solution would be to show something like "'New alias registration in progress" and only update the alias by the background synching process

Document subscribing streams

Write in documentation for manually managed remote nodes. Users should subscribe to streams "alias" and "timestamp".

TableView sorting/selection is reset on data updates.

This problem exists with all the table views currently implemented (transaction history, validators, guardians). Where we have sorting it is not retained after an update and a selected row is unselected after an update.

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.