-
BusyBoredom[m]
It looks like there is currently no autoformatting or linting in monero codebase's CI, is that true or am I missing it?
-
BusyBoredom[m]
Asking 'cause I've been playing around with code stylometry lately, and a lack of formatting/linting in CI might make the monero codebase a really good candidate for it.
-
caveman
i hope this is the right place to discuss this: i'm increasingly sickened by how MMT/keynesian economics steals our money. i'm all for paying for services that we use, but the way governments take our money for them is very shady (taxation is a bad idea; we should rather have service/goods fees).
-
caveman
however, unfortunately, i'm also disappointed that all cryptocurrencies seem to require a permanent network infrastructure, such as the internet. this makes them very easy to regulate by governments who have enough power to control any permanent structure physically.
-
llacqie[m]
Non-dev questions -> #monero, please
-
caveman
ok. apologies.
-
xfedex[m]
There's an issue with monerod which slows down syncing.
-
xfedex[m]
If I try to sync monerod on an hard drive, it says "1 month remaining". By looking at task manager, it appears that monerod writes to the hard drive ~5x more data than needed - if I start monerod and wait until the database size is ~100MB, it has written ~500MB.
-
xfedex[m]
On an SSD, syncing is much faster however it still writes ~5x more data than the database size.
-
moneromoooo
Play with --db-mode as per
monero-project/monero #8189
-
xfedex[m]
<moneromoooo> "Play with --db-mode as per https..." <- By default --db-mode appears to be `fast:async:250000000bytes`, shouldn't this be enough for a fast synchronization?
-
moneromoooo
Try the suggestion in the thread and find out.
-
moneromoooo
Median block weight seems to be about 25 kB. So 250000000bytes is about 10k blocks, so 1% of the suggestion in that thread,
-
moneromoooo
(I think, and I'm using median, not average)
-
moneromoooo
Average 18 tx/blxk
-
moneromoooo
Average 18 tx/block, so average block size is likely a bit below 30 kB, close enough.
-
caveman
i'd like to discuss a totally different protocol than monero's. is this the right channel?
-
caveman
#monero is certainly not suitable. too high noise.
-
moneromoooo
If it is with a view to implement it in monero, possibly. This channel is for monero development.
-
moneromoooo
implementing
-
moneromoooo
If it's pie in the sky stuff, possibly not.
-
moneromoooo
If unsure, try it and see.
-
caveman
basically, i'd like the protocol to be delay-tolerant, so that it can operate in store-and-forward style.
-
caveman
and by delay i mean, possibly months or a year.
-
moneromoooo
It seems hard for an output based system.
-
caveman
output-based system?
-
moneromoooo
Actually, while continuing writing, I find it's also hard for a balance based system...
-
moneromoooo
I mean based on outputs ("coins"), like monero and botcoin.
-
moneromoooo
bitcoin
-
caveman
what's an output-based system?
-
moneromoooo
If you have N monero and want to use them in a system where a tx can be delayed months, you have to (among other things) deal with you sending two txes that double spend each other.
-
moneromoooo
An output based system is one based on outputs ("coins"), like monero and bitcoin.
-
moneromoooo
A possible way to deal with this is to add metadata to outputs saying "do not consider any output created from spending this output to be received before N blocks".
-
moneromoooo
Then if you (Alice) spend the same output to Bob and Carol, who won't be able to see the chain for months, they'll have to delay acting on the payment for that much.
-
monerobull[m]1
<caveman> "and by delay i mean, possibly..." <- You could send transactions in a delayed network a wallet and then drain the wallet the on the up-to-date network, making the transactions on the delayed network invalid
-
caveman
moneromoooo: where N is enough blocks to have enough confidence that it has reached everywhere including regions separated by months?
-
moneromoooo
It's kinda useless though. so you need better. And I don't see how it can be made better.
-
monerobull[m]1
* You could send transactions in a delayed network from a wallet and then drain the wallet the on the up-to-date network, making the transactions on the delayed network invalid
-
moneromoooo
There's also the opendime system, if you trust it to stay "hard" to defeat.
-
monerobull[m]1
* You could send transactions in a delayed network from a wallet and then drain the wallet on the up-to-date network, making the transactions on the delayed network invalid
-
xfedex[m]
caveman: A system based on UTXOs, like Bitcoin, Litecoin, Monero, and many others.
-
xfedex[m]
Ethereum uses account-based system instead of UTXOs
-
moneromoooo
Opendime requires physical exchange though, so niche/special case.
-
moneromoooo
I feel the requirements are similar to distributed databases. There are different models of ensuring consistency.
-
moneromoooo
I don't know this space though. But PoW + longest valid chain with reorgs is the canonical way of cryptocurrencies to ensure consistency.
-
moneromoooo
Maybe there are other ideas from the DB space which could help better this.
-
moneromoooo
Thinking about it, I have a possible start of an idea, though it does seem limited to rich people:
-
moneromoooo
On a balance based system, you could mark your account (with starting balance B) as being able to spend only with a tx proof work, the target of which would be dependent on the ratio between the amount sent to B.
-
moneromoooo
This means that you can't spam double spends because you'd end up with having to do way too much PoW for those txes to be valid.
-
moneromoooo
The con is that in order for the PoW to be practical to perform for a tx, you'd have to send a small fraction of B.
-
moneromoooo
It'd be probabilistic only though. So probably not safe.
-
moneromoooo
Then again, if it's opt-in (ie, you have to mark your account as being usable offline like this), the PoW can be made pretty heavy, so you'd accept having to wait a few hours for a tx from a phone...
-
moneromoooo
It also means more energy expenditure, which is not ideal.
-
moneromoooo
It also means compromised privacy, since you have to mark an account.
-
moneromoooo
I suppose it could maybe be made somewhat more private, by marking an output, making a range proof to prove its value is more than, say, 100 times the value of the new output created. Though how to differentiate between amount sent and change may not be easy.
-
moneromoooo
Privacy makes a lot of things harder unfortunately :/
-
moneromoooo
Anyway, all very handwavy I'm afraid...
-
caveman
interesting (making individuals pow their transactions in account-based systems).
-
caveman
moneromoooo: i have a very different approach, but totally blows privacy out of the window. it goes like this: let people endorse each other up to certain limits. the endorsements will be based on security guarantees that is frozen for long enough (e.g. years). let double spending possibly happen, but impose a hefty punishment once it gets discovered.
-
caveman
in order for an endorsement to be meaningful, one would have to build a good reputation until people recognise him as a trusty individual. this in a sense is a kind of PoW, except that the work done is building a good reputation.
-
moneromoooo
Is it basically trust, or is the punishment the loss of some money that cannot otherwise be spent before the double spend can be detected ?
-
moneromoooo
(or other ?)
-
caveman
people that are recognised as trusty individuals, they can effectively act like banks in that they endorse other people up to certain limits (e.g. guarantee their payments up to some amounts). in order for such endorsers to not lose the trust of the network, they will evolve to require certain guarantees from the people that they endorse (some may require physical deposits or knowing their
-
caveman
locations ,etc).
-
moneromoooo
Sounds like you don't need a chain then :)
-
caveman
it's both. except that the punishment is left to the endorsers to figure out, each based on what works best for them. the network will only care about the whether someone is violating the rules, and if so that entity will be no longer trusted.
-
caveman
yeah. possibly without a chain
-
caveman
essentially, this approach would be identical to the current fiat system, except for that no one can issue currency out of thin air, and that there is no central authority on who can become a bank (endorser)
-
caveman
the nice thing is that it will be super fast to send payments (since it's delay tolerant; no requirement of syncing prior to confirmations).
-
caveman
also, solves the key problem with fiat: inflation/deflation by central bank.
-
caveman
(i.e. printing new fiats out of thin air will be gone)
-
caveman
oh-and: doesn't require internet. people can communicate by whaterver hop-by-hop mechanism, such as bluetooth, nfc, etc.
-
caveman
i think the future currency that will replace fiat (and central banks) is of this kind.
-
UkoeHB
Without a source of truth it is trivial to inflate the supply
-
caveman
here, truth source is the overall population that uses the currency. as they will decide whom to trust.
-
caveman
there can be an origin/genesis block that defines all coins available. so this is a truth source for limiting the supply.
-
UkoeHB
one failed trust connection and the entire system collapses
-
caveman
the genesis? yes. but how is it for the other?
-
caveman
the 2nd trust (people accepting transactions) is done by individuals as they other hierarchies.
-
fr33_yourself[m]
<UkoeHB> "Without a source of truth it..." <- agree
-
caveman
UkoeHB: what makes a thing a source of truth in your view? e.g. what requirements do you seek?
-
-
afungible[m]
On Monero v0.18.1, If we have a wallet like this, e g. 3 sub-address outputs with v.low balance and 4th sub-address with enough balance, to combine outputs with sweep_all, doesn't work. It so happened, that I raised this before & was seemed to work, not sure why it doesn't work anymore.
-
selsta
afungible[m]: do you know the exact version that broke this?
-
UkoeHB
caveman: unambiguous, static rules
-
UkoeHB
that resolve disagreement trivially
-
afungible[m]
<selsta> "afungible: do you know the exact..." <- I raised this & debugged this in detail with moneromoo, but on a version pre-hardfork, so 0.17 stable.
-
afungible[m]
-
afungible[m]
Apparently, don't see it working on 0.18.1. Someone must confirm as well.
-
afungible[m]
The title of the PR was modified after sweep_all for all indices was tested to work, but that was then.