Giter Site home page Giter Site logo

synctext / trustchain-superapp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tribler/trustchain-superapp

0.0 1.0 0.0 300 KB

Kotlin implementation of Trustchain and IPv8 with rich networking: multihoming of local Bluetooth+4G, decentral social networking, UDP hole punching, etc.

License: GNU General Public License v3.0

Kotlin 100.00%

trustchain-superapp's Introduction

TrustChain Super App Build Status

This repository contains a collection of Android apps built on top of IPv8 (our P2P networking stack) and TrustChain (a scalable, distributed, pair-wise ledger). All applications are built into a single APK, following the concept of super apps โ€“ an emerging trend that allows to provide an ecosystem for multiple services within a single all-in-one app experience.

Apps

TrustChain Explorer

TrustChain Explorer allows to browse the TrustChain blocks stored locally on the device and crawl chains of other connected peers. It also demonstrates how to interact with TrustChainCommunity. It defines its own DemoCommunity to ensure that all users using the app are able to discover each other easily. The content of the app is split into several tabs:

  • Peers: A list of discovered peers in DemoCommunity. For each peer, there is a time since the last sent and received message, and an average ping latency. After clicking on the peer item, a list of mutual blocks in TrustChain is shown. It is possible to create and send a new proposal block by clicking on the plus icon. A crawl request send be sent by clicking on the refresh button.
  • Chains: A list of discovered chains in TrustChainComunity, ordered by their length. After clicking on the item, the list of stored blocks is shown.
  • All Blocks: A stream of all received blocks, updated in real-time as new blocks are received from the network.
  • My Chain: A list of blocks in which the current user is participating either as a sender or a receiver. It is possible to create a new self-signed block by clicking on the plus icon. It is posible to sign received blocks if they are not defined to be signed automatically.

Debug

Debug shows various information related to connectivity, including:

  • The list of bootstrap servers and their health. The server is considered to be alive if we received a response from it within the last 120 seconds.
  • The number of connected peers in the loaded overlays.
  • The LAN address estimated from the network interface and the WAN address estimated from the packets received from peers outside of our LAN.
  • The public key and member ID (SHA-1 hash of the public key)
  • TrustChain statistics (the number of stored blocks and the length of our own chain)

Do you want to add your own app?

Build

If you want to build an APK, run the following command:

./gradlew :app:buildDebug

The resulting APK will be stored in app/build/outputs/apk/debug/app-debug.apk.

Install

You can also build and automatically install the app on all connected Android devices with a single command:

./gradlew :app:installDebug

Note: It is required to have an Android device connected with USB debugging enabled before running this command.

Tests

Run unit tests:

./gradlew test

Run instrumented tests:

./gradlew connectedAndroidTest

Code style

Ktlint is used to enforce a consistent code style across the whole project.

Check code style:

./gradlew ktlintCheck

Run code formatter:

./gradlew ktlintFormat

trustchain-superapp's People

Contributors

mattskala avatar synctext avatar

Watchers

 avatar

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.