Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Demo for GoldRepublic #166

Open
kandrio opened this issue Aug 14, 2023 · 16 comments
Open

Demo for GoldRepublic #166

kandrio opened this issue Aug 14, 2023 · 16 comments

Comments

@kandrio
Copy link
Contributor

kandrio commented Aug 14, 2023

Description

On September 5th, Gold Republic will visit the Blockchain lab and we plan to show them a live demo of "offline token transfer". In order to do that, we must make the trustchain-superapp downloadable through the Google Play Store.

Link to relevant issue: #161

Important Dates

Date of the demo:

  • Tuesday, September 5th, 2023

Deadline for trustchain-superapp APK upload:

  • Friday, August 25th, 2023 (APK approval can take up to 10 days)

Demo Structure

@synctext We need to decide on a couple of details:

  • What will be the duration of the demo? 10 to 15 minutes?
  • What will be the structure of the demo? What exactly do we plan to talk about in the beginning (e.g: web-of-trust)? What functionality do we want to showcase in the live demo?

CC @InvictusRMC

@kandrio kandrio changed the title Demo for _GoldRepublic_ Demo for GoldRepublic Aug 14, 2023
@synctext
Copy link
Member

synctext commented Aug 21, 2023

key argument for offline is 6% more revenue: https://tweakers.net/nieuws/171074/albert-heijn-en-ing-presenteren-digitale-betaalmethode-op-basis-van-tokens.html

@kandrio Yes, 10-15 minute of demo time sounds excellent. Please prepare for that.
You are in charge of the demo structure. Explain it from scratch to somebody who is experienced in the global financial system. Focal end-point: we support offline transfers with web-of-trust protection against double spending.

What feature work today? Screenshot of each feature for tutorial!

@kandrio
Copy link
Contributor Author

kandrio commented Aug 23, 2023

@kandrio
Copy link
Contributor Author

kandrio commented Aug 24, 2023

Understanding EuroToken

Ideally, we want to show GoldRepublic a EuroToken transfer live. However, I don't understand how to do that. I don't have any experience on the EuroToken module and I can't find any documentation about it.

The initial screen of the app looks like this:

In order to receive EuroTokens, I:

  1. fill the amount under "Request or transfer euro token"
  2. hit the Request button

Then, a QR code appears:

On a 2nd device, I hit the Send button and I scan the QR code. Then the following screen appears on the 2nd device:

As you can see, I get "Insufficient balance", so the transfer cannot happen. This makes sense, since my balance is 0 euros. So, I'm thinking about increasing my balance through the Exchange screen, on the bottom right part of the screen. This looks like this:

However, I don't get how this works.

@InvictusRMC @synctext any ideas on what I'm missing here?

@synctext
Copy link
Member

synctext commented Aug 29, 2023

Key priority: get demo working
The offline token transfer must work for the demo. This means ability to create GoldEuros. The Demo mode used to work, could create Euros somehow. The demo mode only fills the trusted counterparty DB, when DEMO mode is enabled, it generates 50 random keys instead. Solution could be: enable demo mode, automatically adds 10 Euro to your balance! 💶

@InvictusRMC
Copy link
Member

InvictusRMC commented Aug 29, 2023

@InvictusRMC @synctext any ideas on what I'm missing here?

Sorry for the late response. You need to run a gateway for this. I'll reach out to the student who last worked on this and will get back to you.

@synctext
Copy link
Member

Sorry for the late response. You need to run a gateway for this. I'll reach out to the student who last worked on this and will get back to you.

No gateway needed. Just add 10 Euro to the user balance when enabling Demo Mode. Fixed 🔨

@InvictusRMC
Copy link
Member

InvictusRMC commented Aug 29, 2023

Update

I have found out the following:

  • The gateway is found in this repository: https://github.com/Tim-W/simple-btc-faucet
    • We should make a dedicated repo in Tribler for this.
    • If you manage to get it up and running, we can ask @xoriole for some dedicated server space.
  • The superapp has to point to the correct API endpoint of the gateway.
  • I am told that you need an API key for the Tikkie integration to function.
    • Apparently anyone can create an ABN AMRO dev account and request a free API key for this.
  • The demo mode should bypass validators.

@InvictusRMC
Copy link
Member

Sorry for the late response. You need to run a gateway for this. I'll reach out to the student who last worked on this and will get back to you.

No gateway needed. Just add 10 Euro to the user balance when enabling Demo Mode. Fixed 🔨

Ah! Yes, definitely try this first 🙂

@kandrio
Copy link
Contributor Author

kandrio commented Aug 29, 2023

I'm on it!

@kandrio
Copy link
Contributor Author

kandrio commented Aug 31, 2023

Networking Issues

During the past few days, I've been trying to make the default initial balance equal to 10 Eurotokens, instead of 0. This is only for the purpose of the demo of course. It was harder than I thought, but I successfully managed to do it!

Now, the sender is able to create and send a Proposal block successfully (without any "Insufficient balance" errors). However, one problem arises: the receiver does not receive any Proposal blocks. Therefore, what happens is:

  • on the sender side, the sender's balance gets updated
  • on the receiver siede, the receiver's balance remains untouched

Having worked with trustchain and IPv8 during the blockchain engineering course, I assume that this is clearly a connectivity/networking issue between the two devices. Specifically, I have 2 android devices connected to the same WiFi network (with access to the internet), but no Proposal blocks arrive on the receiver.

@synctext @InvictusRMC Any ideas on how to resolve this?

@InvictusRMC
Copy link
Member

Should work indeed. Are you doing it over Eduroam or personal WiFi? The former can introduce some issues.

@kandrio
Copy link
Contributor Author

kandrio commented Aug 31, 2023

Are you doing it over Eduroam or personal WiFi? The former can introduce some issues.

Personal WiFi.

I think it's a peer discovery issue at heart. I'll dive deeper and see what's going on

@kandrio
Copy link
Contributor Author

kandrio commented Sep 1, 2023

Update

I managed to make simple transactions work finally. With a good WiFi network, peer discovery works. There were some other bugs in the application that I managed to resolve. Here are some screenshots:

Sender

Receiver

@synctext @InvictusRMC How does this look? I will upload an APK here by Monday, which will be the APK I'll use for the demo. I don't know if we have enough time for a new release.

Also, I'm not really familiar with some entities in Eurotoken. For instance:

  • what is the localhost Gateway that I see in the transactions screen
  • what is a checkpoint and what's its purpose

Feel free to point me to any documentation so that I understand a little bit better what happens underneath

@synctext
Copy link
Member

synctext commented Sep 1, 2023

Google Play upload is hopefully in time. Solid work ✅

@InvictusRMC
Copy link
Member

Unfortunately I don't have access to a PC until Monday. I can share the build commands with you though. If you then send me the APK, I will publish it.

@kandrio
Copy link
Contributor Author

kandrio commented Sep 2, 2023

@InvictusRMC send me the build commands and I'll build the APK and send it to you. I'll be AFK for the weekend as well, so I'll upload the APK on Sunday evening.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants