Coder Social home page Coder Social logo

personhood.online's Introduction

POPCOIN

POPCOIN is an appliation for a currency which has the mechanism featured by demurrage and universal basic income (in the future) a global currency.

Now this is only a demo version with restricted features. Creating a new account with EPFL Tequila authentication, receiving and sending coins to others.

How To Build

Environment

Node.js

For windows user, you can download Node.js installer (.msi) here.

For macOS user, you can also download Node.js from the link above or use Homebrew (package manager for macOS):

brew install node

For installing the Node.js on Linux, please check the document here for different distributions of Linux.

React Native and Dependencies

After clone this project by the commands below:

# Get the repo
git clone [email protected]:dedis/personhood.online.git

# Switch to this branch
git fetch
git checkout rn-dev

# Change directory to the project
cd ./personhood.online

Then prepare react native dependencies:

yarn

# or using the default package manager

npm install

If you not familiar with yarn. please check here. Both package manager yarn or npm works for this project.

For both iOS and Android, they have their own dependencies for supporting react native packages.

iOS

It can only run on macOS

Ensure that you already have Xcode and CocoaPods installed on your macOS. Then run:

npx pod-install ios

# or
cd ./ios
pod install 

The script below will build the app and run it in the simulator. It will also automatically start the metro daemon for compiling project dynamically.

yarn ios

Android

Similarly, the script below will run the app in an Android simulator. You also need to have Andriod Studio and gradle installed first.

yarn android

To make a release build:

cd ./android
./gradlew assembleRelease

Then you will find the APK in ./android/app/build/outputs/apk/release/

Build Contract

By running the script below, you will get the ABI and bytecode of the POPCOIN contract:

solc -o . --bin --abi ./contract/Popcoin.sol

personhood.online's People

Contributors

vergil-zhao avatar thisishaoqian avatar

Stargazers

 avatar Kirill Pimenov avatar  avatar Miguel Pardal avatar

Watchers

James Cloos avatar Bryan Ford avatar Philipp Jovanovic avatar Linus Gasser avatar Nicolas Gailly avatar Simone C. avatar  avatar Ismail Khoffi avatar Cristina Basescu avatar  avatar  avatar Ceyhun Alp avatar  avatar  avatar

personhood.online's Issues

Add Rock Paper Scissors

For a first demo, add a simple Rock, Paper, Scissors contract. It should:

  1. get a salted hash from player 1 with his choice, plus the coins he wants to put at stake
  2. get the choice of player 2, coins matching the stake, and the account of player 2 for an eventual win
  3. get the pre-hash of player 1, and the account where an eventual win should be stored

Progress bars everywhere

Some missing progress-bars:

  • personhood / create party
  • personhood / activate barrier point
  • identity / publish personhood

Party Editing display

Now: on some displays, not all fields are shown
Wanted: add ScrollView (or whatever).

Personhood party - attendee QRCode

now: the qrcode from the attendees is small and sometimes difficult to scan
wanted: when the qrcode is clicked, it should show it like the qrcodes from 'Contact'

Sending of coins

Now: when a user wants to send all coins, it refuses
wanted: making it possible for the user to send all his coins

proposed minor formatting changes

The URL should be a link you can click on.

The logo should be a link you can click on.

The space before the colon should be removed in English.

"Once your identity got activated" -> is activated.

Add polling contract or service

For the demo, add a polling contract (or service) where all members of a personhood-party can reply once for a given question, using linkable ring signatures to make sure every member only votes once.

Consider attack scenarios when the URLs in QRs are edited

Here is the URL that is in the qr code when I look at the "user info" from Gaylor:
https://pop.dedis.ch/qrcode/identity-1?credentialIID=cc99b5ac2c6cfccb8476d0920072b661f0b3a45b282b8ec1ad7c4df24e53a20c&public_ed25519=b7a1e2b0a8c76636f65cab8b1e62e5fa43da2f0944e60729a5ee78ad41dc29d7&alias=Gaylor

I could edit that URL to point at my id, leaving alias=Gaylor, then make a forged personhood app by editing a screenshot. Then if I can get someone to add my fake Gaylor to his contract, then when they send coins to "Gaylor", my account is credited with them.

Of course, this is the "binding public keys to humans" problem, but it feels like the binding of the alias to the public key is too weak at this point.

New Personhood party on iOS

When creating a new personhood party on iOS, several problems appear:

  • + button to create a new party does not show up (too little space in upper bar)
  • When chosing new date or time, the selector doesn't allow to pick the date
  • Cannot add other organizer, as the list shows up empty

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.