kernel-community / honour Goto Github PK
View Code? Open in Web Editor NEWA werid system of social credit based on two simple principles: do no harm & play infinitely.
Home Page: https://honour-money.vercel.app
License: MIT License
A werid system of social credit based on two simple principles: do no harm & play infinitely.
Home Page: https://honour-money.vercel.app
License: MIT License
We don't need such a fancy execution button, yet our ErrorModal currently depends on it.
The ErrorModal is triggered if, for instance, someone rejects a transaction when asked to sign for it. So we do use it in the app: we can just strip out all other leftovers in the ExecutionButton.js file (prob remove the whole file and put the limited functionality we need directly into ErrorModal.js itself).
You can't forgive someone more than your current balance, and you can't forgive them more than their current balance.
Check this before allowing people to sign a tx which then fails.
Currently, there is no good way to figure out if a given proposal has been honoured, or if a given forgiveness has been accepted.
This is complicated further by the fact that honour()
accepts an amount param (as there is a case to be made that I might wish to accept this obligation from you, but not one you previously tried to create which I don't agree to). However, accept()
simply accepts whatever forgiveness is in the mapping, because there is no reason not to accept all forgiveness offered to you.
Currently, I am removing proposals which have honours that match the proposer and the amount. Obviously, this will cause issues down the line where the same account proposes the same amount to me multiple times.
Moreover, when filtering the forgives we show to the user, we will likely need to collaps all forgives from the same address into one row, and then somehow make sure that row doesn't appear again once accepted (yet new rows from the same account will appear if new forgiveness has been offered).
All in all, it's quite the story...
Ideally, we'd want to pop up a modal before Honouring any Proposal, or Accepting any Forgiveness.
This modal must explain that you balance is equivalent to your creditworthiness (higher balance == less creditworthy) and that your transaction history is equivalent to your trustworthiness.
Therefore, you don't want to honour proposals that put you too much in debt, nor do you want to honour proposals from accounts that have 'strange' transactions in their history. You also don't want to just accept Forgiveness from a random account (even if they offer a lot of forgiveness) because this would make your own account look suspicious.
This raises the question: "what is strange?" That is, what kinds of transactions in a given history make an account "suspicious".
My hunch is that it is largely contextual. There are some big giveaways though:
That said, how do "botnets" differ from local trade in a tight network of friends? Is there a way to reliably discern between the two. This gets us to:
So, in building our "trust model", we're looking at anomalous transactions (where anomalous == sudden change in relative magnitude of transaction size, either honouring - taking on debt - or forigiving - removing the debt of others) and anomalous transaction volumes.
For a v1, I think that simply putting up a modal which displays the transaction history of the proposer of the forgiver, before anyone either honours or accepts a given transaction is a good start. However, we will definitely need to do more to make it easy and intuitive for people to decide upon trustworthiness when interacting via HON.
Encountering an issue where selecting the 'Inspect' button to view elements results in a white screen. The console logs multiple errors at this point, which appear to be related to resource loading, application manifest processing, and a critical TypeError in React.
Key errors from the console include:
[Intervention]
warning suggesting slow network conditions and fallback font usage.logo192.png
) failed to load.null
reference when attempting to access the 'basename' property in index.tsx
.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.