-
kayabaNerve
We only ban torsion on key images, right? Everything else doesn't care?
-
kayabaNerve
I know we clear torsion on a variety of items. Those aren't actively relevant to me so I'm only asking about torsion checks.
-
kayabaNerve
*also asking about the protocol and wallet2
-
UkoeHB
Yes
-
kayabaNerve
And then we ban unreduced points/-0 yet allow deserializing unreduced scalars, yet in the modern day, we sc_check all of them to ensure they're < l]
-
kayabaNerve
*< l
-
UkoeHB
afaik point deserialization is not checked
-
kayabaNerve
Uhhhhh it is the second it passes through consensus.
-
kayabaNerve
So you're right in that the output key is treated as a byte array despite being rct::key
-
kayabaNerve
Yet any rct::key we do operate with as a point...
-
kayabaNerve
So basically, if it's in Bulletproofs, I can treat it as a point with those 2 checks, yet if it's an output key, uint_8[32].
-
kayabaNerve
... right?
-
kayabaNerve
Like not trying to ask for confirmation just to shoot you down lol. Just realized yeah, I was not specific enough, and yes, you're right, it's not checked ;)
-
kayabaNerve
I *believe* everything under Rct* (base and prunable) can be point deserialized with those validity rules AND anything paired with Bulletproofs (so post-Borromean) is sc_check'd, yet I'm checking that now.
-
UkoeHB
onetime addresses and ephemeral pubkeys are not deserialized during verification
-
UkoeHB
for new outputs
-
UkoeHB
unless I'm mistaken
-
kayabaNerve
Seems like it from my double checks (as ephemeral keys aren't even acked by consensus).. Thanks for confirming :)
-
wale2
hello, i was thinking of making a freelance website with monero as payment. does anyone know what the best way to implement an escrow service for such a site would be?
-
moneromooo
Instead of giving your address for payment, give Carol's address instead. Ask Carol, who should be trusted by both you and your counterparties.
-
moneromooo
I don't think you need to code anything for that really.
-
moneromooo
Well, not monero code anyway.
-
wale2
Not sure if I understand. Is Carol on the Seller side?
-
one-horse-wagon[
Carol is a trusted 3rd party who's wallet, the buyer will deposit funds too. Once everything goes as agreed by you (the seller) and the buyer, Carol releases the funds to you. All Carol needs to set up is her Monero wallet. There is no coding involved.
-
moneromooo
Carol is the escrow.
-
wale2
I see now. Does that mean that for every new buyer/seller interaction I would need to create a new Carol wallet or just once for everyone? And how would I go about getting such a trusted 3rd party wallet. Sorry for the many dumb questions I'm new to this '=D
-
moneromooo
I... see... If you'd create a Carol wallet, you'd most likely be a scammer. An escrow is not you, I'm sure you realize...
-
moneromooo
The whole *point* of an escrow is that it's independent.
-
moneromooo
It's a social thing, not a code thing.
-
wale2
Yeah that's what I thought. But how does localmonero for example do it. Why is it their Carol Wallet trusted? And where would I get such a wallet to store the Buyers funds in
-
kayabaNerve
The extra_padding parser stops after 254 bytes of actual data, right? It's <= 255, yet starts from 1 for the tag. There's also a varint length here, but I don't believe it's included in that length.
-
sech1
what? It loops from 1 to 255 and reads 1 byte per iteration
-
sech1
so 255 bytes
-
sech1
hmm, actually it can only store 254 bytes
-
sech1
store and load functions are inconsistent
-
kayabaNerve
... fun
-
kayabaNerve
So I'm not sure what's up there, I just wanted to confirm that if I didn't want to cause Monero
-
kayabaNerve
*Monero's pareser to error, I should limit my lib's data field to 254 bytes
-
kayabaNerve
Oh. 1 .. <= 255 is 255 bytes, right.
-
kayabaNerve
Except on writing 255, yeah, it becomes 256 and serialize errors.
-
sech1
looking at comments there, it's 255 bytes including variant tag
-
sech1
so variant tag + up to 254 zeros
-
kayabaNerve
But not the varint len, and the data itself is 254
-
kayabaNerve
... this does have a varint len after the tag, right?
-
kayabaNerve
I was pretty sure so, and have always used that assumption, but there's a comment to the contrary
-
sech1
there's no varint len for this tag
-
kayabaNerve
But I'm not sure what else it'd use here unless it used a raw byte, but I can't even find that
-
sech1
see comments on line 177 in tx_extra.h
-
kayabaNerve
... oh. Is it just always at the end of TX extra?
-
sech1
padding should be at the end
-
kayabaNerve
Right, which was the comment to the contrary
-
kayabaNerve
And I do know the sort order. I just find it weird if PADDING is interpreted as read to end
-
kayabaNerve
But that explains the eof break check :p
-
kayabaNerve
I assumed that was operating on a subslice, not on the extra vector itself
-
kayabaNerve
So padding is read to end and doesn't have its own defined length. Monero only properly supports 254 bytes of arb data
-
kayabaNerve
Right?
-
kayabaNerve
And thank you :)
-
sech1
padding must be all 0's
-
sech1
you shouldn't put arbitrary data there
-
kayabaNerve
... wait what? What field am I thinking of then?
-
sech1
tx_extra_nonce can be anything
-
sech1
up to 255 bytes (not including varint length)
-
kayabaNerve
Why does Monero have a field for null data?
-
kayabaNerve
I'm not even sure the theoretical value of that .-.
-
kayabaNerve
That does make much more sense though (as it's just a size_t). I thought this was just ignoring the arbitrary data because it didn't care.
-
kayabaNerve
Really not familiar with the macros here.
-
sech1
I don't think padding is even used anywhere
-
sech1
technically, you can put any unused tag in extra field and write any data there, not limited to 255 bytes
-
sech1
just keep the format (1 byte for tag, then varint length, then data of that length)
-
kayabaNerve
Thanks. Planning to just use a second Nonce field.
-
sech1
actually, if you add new tag value, parse_tx_extra will fail which can create problems for tx recipient
-
sech1
unless the code on receiving side is also updated
-
kayabaNerve
That was my concern :p I'm not planning such TXs (to wallet2 with arb data), but I believe a secondary nonce would be fine so long as its second in the ordering. Else, I'll reuse minergate lol.
-
sech1
you can use multiple tx_extra_nonce tags
-
vtnerd
yeah tx_extra is limited by block size iirc
-
sech1
only first tx_extra_nonce is used for something, if I read the code right
-
vtnerd
theres been a few massive ones in the past
-
sech1
tx_extra is not limited, but the whole tx size is limited
-
vtnerd
correct
-
vtnerd
oh separate from block size?
-
sech1
tx size limit is derived from median block size
-
sech1
max size that can be mined or added to mempool is 1/2 of mediab block size
-
sech1
wallet2 limits it even further to 1/3 but it's not consensus
-
sech1
I've removed this limitation from wallet2 and created bigger transactions that were mined
-
sech1
there's also #define CRYPTONOTE_MAX_TX_SIZE 1000000
-
sech1
but we're far from that limit yet
-
rub-ick[m]
Is this a good place to ask for help about setting up a xmr exclusive btcpay server?
-
moneromooo
Not too likely. You can look for a btcpay channel. If there's none, maybe #monero-community might have someone who knows about this.
-
rub-ick[m]
Ok, thanks
-
rub-ick[m]
plowsof: This is exactly the guide I'm using but it's mentioning some non existent variables plus other things, I think it may be outdated. I'm trying to contact Seth but he didn't answered me yet.