Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.75k stars 445 forks source link

TrustChain: Build you own blockchain - group 1 #3237

Closed boninggong closed 6 years ago

boninggong commented 6 years ago

You will create your own blockchain, almost from scratch. Your blockchain will be special! Your blockchain will be the first in the world to operate on smartphones exclusively. Your blockchain will not need servers, miners, consensus nodes, PCs, central entities, oversight bodies, governments, banks, or any other impurity. Just phones. Your blockchain should not rely on any server, require no infrastructure, and trust no entity except itself. It thus also becomes increasingly attack-resilient and with offline support it will not even depend on The Internet itself.

The two students helping you as TAs in this course have already implemented a starting point for you. You will build upon their work and create an operational Android-based implementation capable of talking to the live network. The protocol is Trustchain, the 3rd generation blockchain created by TUDelft scientists. Read the scientific paper. A more extensive master thesis from mathematics is also available.

TrustChain is capable of creating trusted transactions among strangers without central control. This enables new areas of blockchain use with a focus on building trust between individuals. Our innovative approach offers scalability, openness and Sybil-resistance while replacing proof-of-work with a mechanism to establish the validity and integrity of transactions. TrustChain is a permission-less tamper-proof data structure for storing transaction records of agents. We create an immutable chain of temporally ordered interactions for each agent. It is inherently parallel and every agent creates his own genesis block. TrustChain includes a novel Sybil-resistant algorithm named NetFlow to determine trustworthiness of agents in an online community. NetFlow ensures that agents who take resources from the community also contribute back. We demonstrate that irrefutable historical transaction records offer security and seamless scalability, without requiring global consensus. Experimentation shows that the transaction throughput of TrustChain surpasses that of traditional blockchain architectures like Bitcoin. We show by using extracted data from a live network that TrustChain has sufficient informativeness to identify freeriders, leading to refusal of service.

The live network can be seen here in a real-time overview. Your "Part I" starting point for software engineering can be found here on Github. Documentation on Android Trustchain. A key element of your "Part II" project is to implement networking. Another Delft project to take inspiration from is creating an academically pure Android-to-Android overlay, with it's own live deployment on Google Play.

Functionality to implement in your Android app: take a photo, sign this photo, publish on your blockchain, browse the Trustchain of others, validate their chain signatures, see their signed photos, and optionally support offline features.

Group Members: @ClintonCao @TimBuckers @Michieldoesburg @LaurensWe @boninggong

ClintonCao commented 6 years ago

TODO for next sprint:

Next meeting with Johan: 28 November 2017 - 11:30

ClintonCao commented 6 years ago

TODO for this sprint:

Points for next sprint:

Link to repo: https://github.com/ClintonCao/CS4160-trustchain-android

Possible outcome: pull request on the original android project

Next meeting with Johan: 5 December 2017 - 11:30

boninggong commented 6 years ago

Meeting 04-12-2017

TODO:

Questions for next time:

TimBuckers commented 6 years ago

The concept from an user perspective:

planning_blockchain

synctext commented 6 years ago

Update:

synctext commented 6 years ago

image

laurensWe commented 6 years ago

Normally the GUI in the working case:

synctext commented 6 years ago

In a future sprint, link to IPv8 testnet: https://github.com/Tribler/tribler/issues/3272

boninggong commented 6 years ago

Sprint and tasks for week 2.4, see issues and assignees on the fork repository.

Next meeting with Johan: 12 December 2017 - 16:00

synctext commented 6 years ago

Status update:

TimBuckers commented 6 years ago

Update last week:

release: https://github.com/ClintonCao/CS4160-trustchain-android/releases/tag/2.0

current state trustchain android

synctext commented 6 years ago

Progress:

ClintonCao commented 6 years ago

Version 3.0 of the app is available here.

TimBuckers commented 6 years ago

image

synctext commented 6 years ago

Sprint feedback:

synctext commented 6 years ago

Final documentation is contribution to: http://trustchain-android.readthedocs.io/

synctext commented 6 years ago
synctext commented 6 years ago

Talking to @wkmeijer and @klikooo about the app. Testing with few phones and latest Google Play code with inboxes. Overlay is a bit better, but still mostly broken. Please focus on overlay part. Friday I will feature this app at Stanford. Would be nice if it's in better shape. Thnx.

synctext commented 6 years ago

[update] Seems that the bootstrap server can talk to everybody. See picture below. However, the basics which worked in earlier app-to-app work seem broken. No 4G or 3G. (small issue; unconnectable peers should be purged after 5-ish failed attempts or a few minutes timeout by the overlay.) img_20180122_144300

laurensWe commented 6 years ago

Latest release: https://github.com/ClintonCao/CS4160-trustchain-android/releases

laurensWe commented 6 years ago

Short url: http://bit.ly/2n2l8rQ

synctext commented 6 years ago

Photo donated to the Public Domain. No copyrights claimed. overlay_android_manual_test__jan2018

TimBuckers commented 6 years ago

img_20180123_114422

TimBuckers commented 6 years ago

screenshot_20180123-115803

TimBuckers commented 6 years ago

img_20180123_120604_547

synctext commented 6 years ago

Status?

wkmeijer commented 6 years ago

@synctext This latest version is now available as an update in the play store.

devos50 commented 6 years ago

@wkmeijer maybe could you also publish the APK on the Github repo (https://github.com/wkmeijer/CS4160-trustchain-android/releases)?

synctext commented 6 years ago

Thnx,updated. Mental notes on versioning.. New abilities or security features are hard to deploy. Any update of an overlay is required to know and understand the version of peers it sees. Updates MUST either create a new isolated network akin to a hard fork or be fully backwards compatible.

boninggong commented 6 years ago

The screenshots for a walkthrough of the app can be downloaded from: https://drive.google.com/open?id=1OwmJVxRF91V9ENGMebDRsIhpUZIavFjR

We will include these later in the readthedocs file and give a more descriptive explanation of each step and all the functions that are implemented.

synctext commented 6 years ago

convert -delay 150 -loop 0 1\-* [2-9]* 1[1-9]* all.gif trustchain_android__signature_requests_and_mailbox

TimBuckers commented 6 years ago

The final Pull Request is online https://github.com/wkmeijer/CS4160-trustchain-android/pull/81 The released apk: https://github.com/ClintonCao/CS4160-trustchain-android/releases/tag/4.0 This includes:

@synctext

synctext commented 6 years ago

Quick feedback on performance for input to grading: