-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Add burningman accounting #6423
Add burningman accounting #6423
Conversation
ff43f86
to
def6083
Compare
We need to update https://bisq.wiki/Dispute_resolution as well. |
a951005
to
2d72d0a
Compare
desktop/src/main/java/bisq/desktop/main/dao/burnbsq/burningman/BalanceEntryItem.java
Show resolved
Hide resolved
Regtest Testing notes:
|
.../main/java/bisq/core/dao/burningman/accounting/storage/BurningManAccountingStoreService.java
Show resolved
Hide resolved
core/src/main/java/bisq/core/dao/burningman/accounting/BurningManAccountingService.java
Show resolved
Hide resolved
core/src/main/java/bisq/core/dao/burningman/accounting/BurningManAccountingService.java
Show resolved
Hide resolved
core/src/main/java/bisq/core/dao/burningman/accounting/balance/BalanceModel.java
Show resolved
Hide resolved
core/src/main/java/bisq/core/dao/burningman/accounting/node/AccountingNodeProvider.java
Show resolved
Hide resolved
core/src/main/java/bisq/core/dao/burningman/accounting/node/full/AccountingBlockParser.java
Show resolved
Hide resolved
core/src/main/java/bisq/core/dao/burningman/accounting/node/full/AccountingBlockParser.java
Show resolved
Hide resolved
core/src/main/java/bisq/core/dao/burningman/accounting/node/full/AccountingFullNode.java
Show resolved
Hide resolved
9293e50
to
7e67d65
Compare
I am happy to do this and also update: Assuming bisq-network/proposals#397 will also be accepted? If so I can explain this in the wiki. Also assuming this proposal bisq-network/proposals#386 is also accepted? Also unsure as to how legacy trades will be managed? Will trade placed before the implementation of the new burning men proposal still be able to be taken? When will bisq-network/proposals#386 be actioned by the refund agent? Will it apply to ALL trades from a specific date? Will it apply to trades using the new protocol only or legacy trades? Might be simpler to choose a cut off date that coincides with the new release. Ie trades taken after X date will not have peers trade deposit paid out. |
Also need to update the mediation result text. Currently reads:
Suggested change: Replace penultimate paragraph with:
|
3bd5b8d
to
d0e3c24
Compare
Here are some notes for testing with some explainations about certain behaviour:
Program artuments for localhost/regtest seed node in full BM mode:
The important ones are:
Parameters: Initial state: Expected: Legacy DPT BM get 100% of receiver share Legacy BM and DPT and fee burn BSQ: Create an offer and after new block check if legacy BM got the trade fee. Take the offer and check if legacy BM got the del. payout tx after letting the trade go to arbitration. Burn BSQ as co-founder. Why 1631.46? Let Co-founder 0 burn 1631.46 BSQ. Both Co-founder 1 and Co-founder 2 have burn target 0 as thye have reached their 11% cap it would not make sense to burn more. Alice makes comp request for 20 000 BSQ. She use the address from her Bisq btc wallet as receiver address. After voting Alice can burn 1649.32 - 1693.39 BSQ and Bob: 1693.39 - 1693.39 BSQ . Burn target are calculated as follows: Why has Alice less:
Bob has now close to 11% receiver share, Alice about 10%. Due to the dynamic behaviour with burn amount decay at each block it is never exactly as it was targeted (11%). To test receivers for fees we can create an offer and Alice and Bob have 10/11% chance to get the fee. For DPT we need to create 20 blocks to be sure that the snapshot height used for the calculation is higher then the burn tx height.
When getting there the oldest burn txs will get decayed value 0 and the legacy BM might get a share again as we might not reach the 100%. In real life situation it is expected that each cycle new burn txs gets added so that effect will likely not happen. If the sum of all decayed burned BSQ is very low the individual BM might get values below 5.46 BSQ and then its set to 0. |
14ca95e
to
faec46d
Compare
Great thanks!
Seems it got enough support.
Seems it got enough support.
The update will happen like that: Release of 1.9.7 with new BM feature deactivated. Pending trades with old version will be treated like before. The Arbitrator UI has still the custom payout option to follow the past rules. Only trades started after activation date are following new rule. Still Arbitrator has flexibility with custom payouts. Legacy BM will get BTC until activation date. After that it will take a while until new BM have burned BSQ and legacy BM will not receive anything anymore.
Offers they are not affected. Trades started before are treated as old trades. The new BM distribution is set at take-offer time.
For trades which started after activation date.
Yes. |
Could you use the full text as here for your suggestion? Was not totally sure where to insert it.
|
No problems:
edited to include @MwithM's feedback. |
.map(balanceEntry -> new BalanceEntryItem(balanceEntry, averageBsqPriceByMonth, bsqFormatter, btcFormatter)) | ||
.collect(Collectors.toList())); | ||
// 108869: 617 - 1878, 640-1531 | ||
log.error("balanceEntryObservableList setAll took {} ms size={}", System.currentTimeMillis() - ts, balanceEntryObservableList.size()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Debugging statement accidentally logged as an error?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ups, will remove...
We will use that for the optional address field in compensation requests and interpret empty input as Optional.empty. Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
We cannot add a new field as that would break DAO consensus. Add optional text field for burningManReceiverAddress to CompensationProposal UI. Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Will be used later by BurningMan domain. Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
…ill be used later) Change return type of FormBuilder.addTableViewWithHeader Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Add filter for before date Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Add requestRawDtoBlock method. Rename to make different block types more clear. Change visibility
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Use resourceDataStoreService and extend StoreService Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Update UI. Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Add check for number of confirmations in devMode to show support button after 5 blocks Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
…ts lead to deadlock situations. Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
Signed-off-by: HenrikJannsen <boilingfrog@gmx.com>
2e14203
to
e57af6e
Compare
@jmacxx Could you please ACK the new changes, so I can merge them for the release branch? Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK
Due to BSQ price not having history in regtest, getting IllegalArgumentException (as a popup).
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK - based on #6423 (review)
@HenrikJannsen Do we handle this or drop it for now as it won't be a production issue? |
I fixed it in upcoming PR #6463 |
@HenrikJannsen If there haven't been any CR for this user we should deactivate the dropdown in the What is the
So the general behavior will be that contributors will try to burn as little as possible to reach a maximum receiver share and when slowly more contributors are joining they will increase their burned amount up to max their expected BSQ to receive. This is one thing that might be a bit confusing is that we display the Expected BSQ to receive, but in reality they will receive BTC, correct? As this is a feature only for contributors I'm not sure if we should display the |
The
Yes, agree could be added.
To show/hide columns. I'm not sure if we have this error handling everywhere, but if I use all of my BSQ with a dust output of 0 BSQ I get this error message. Hm... yes thats a generic error from the wallet. if you have 10 bsq and want to send 6 bsq you get 4 bsq change thus a dust amount you cannot spend.
If they act purely economically rational, yet the first BM would start with the smallest amount 5.46 BSQ and get his max. share. Then when the next BM joins his share goes down and he need to burn more.... But thats only in the bootstrapping to get to reasonable amounts. I assume some BM will burn realistic amounts and by that short cut this small incremental process. But later once bootstrapped economically rational behaviour should lead to a competition for the right "costs"/ profit of the model. If BM dont earn enough they will leave or burn less, by that the profit goes up and new ones might join.
Yes, thats calculated with the last months average price. As burning is in BSQ I think having BSQ as accounting currency is easier. But yes we could also use BTC as accounting currency but then the burned amount always need to be converted.
Hm... yes could be considered. But maybe it gives a fake feeling for privacy then? All the data are public anyway so we only show a UI for stuff which is out there already. |
Implements bisq-network/proposals#390 (comment)