01:03:59 Elon musk is getting annoying 01:06:40 not a -dev topic 01:08:50 Sorry was in the wrong group 04:49:40 mj-xmr: i made the changes to that PR, can you take a look when you get a chance? 04:49:42 https://github.com/monero-project/monero/pull/7707/files/21ff3b454f670ef1b0c25223d6505798ce776b4a..48a2a7b7915078a03af4cecbd034d2dc7553973c 04:49:43 Thanks! 04:50:11 reposting ^ as it was not visible to everyone on IRC 06:05:11 Replied. Just one small nitpick :) 10:51:41 Hi. Is there a way I can scan a LMDB database that is key : duplicate struct entries   to find whether a struct with say three fields with specific values exists? 10:52:26 similar to how you would do with std::find_if on a vector of structs and boost_bind to the field of the struct you're comparing against 10:53:45 For example search a db of 10:53:45 key: hash 10:53:46 duplicate value structs{ 10:53:46 int a; 10:53:47 hash b; 10:53:47 char c; 10:53:48 etc./... 10:53:48 } 10:53:49 and search where a = something, b = something 11:28:29 Do you mean: you have records, some of which share the same key, and you want to find a record that has a particular key *and* value ? 11:29:11 If so, yes. See, for example, the key images table, which has a single key (special case). 11:32:46 Yes but not a particular value in totality moneromooo, a value (that is a struct) that has *some* attributes the same but not all 11:37:28 I have one like that in Townforge, a Monero clone. https://git.townforge.net, cc_events table. 11:42:42 i'll take a look 11:42:53 is it still fast for looking up like that? 11:46:47 Measure it :) But I don't think it really matters much (assuming your comparison function is sane). 11:56:09 moneromooo where should I be looking at for an example of this kind of query? is it get_cc_events? 11:57:47 Yes. Both account and flag may be 0 (any value) or > 0 (only records with that value). 12:00:11 Hey guys I was wondering if atomic swaps are coming how can we prevent monero being swapped into tainted BTC or can I see it as a one way ticket from BTC to XMR but not back? 12:00:54 If people are willing to accept tainted BTC, then it'll be swapped. What's most likely to happen is the mark will be forced to be dropped IMO 12:01:27 Because the money isn't publicly blacklisted, making it viable for commerce, and the new holder has no issue. Lot of wasted time/effort to continue tracking. 12:01:53 But even if they keep it marked, and it is an issue, you could always sell tainted BTC back to XMR just like you bought it in the first place 12:04:47 Interesting 12:05:02 I wonder how it plays out 12:05:56 With all their fuzz about their certified clean BTC 12:11:32 moneromooo I think I see kind of what you are doing. Is the only way this is possible a custom compare function? 12:13:08 I think so. I did this after asking hyc what was the best way to do it. 12:13:54 lol thanks very complex i see 12:14:00 but makes sense I think 12:14:30 Does your compare function account for if you wanted to check a complete record as well? 12:16:35 For a complete record, you can use the spent_keys table system. 12:16:50 Or you can extend the accunt/flag system to all the fields in your structure. 12:22:10 what are you trying to do here? retrieve values with a partially-specified comparator? 12:22:59 hyc, yes, essentially i have keys with duplicates (that are structs) 12:23:30 and i want to find some or all duplicates for a given key that have *some* fields matching, but not all 12:24:06 Oh, my system will only work if those are sorted (ie, it'll find contiguous records). 12:24:25 yeah, as long as the comparator was fully specified when the data was inserted 12:24:28 If your records can be disconnected, I think you'll have to get all and filter manually. 12:24:31 so all records are well-ordered 12:25:18 would be best to just use GET_BOTH_RANGE to find the first match and then go on from there 12:37:20 re: #7707 how does p2p currently work to advertise node's incoming address, when node is NAT'd? 12:40:22 IIRC there is a command line param for this. 12:40:53 But typically you just don't get any incoming connections. 12:41:06 it is working for me if I portforward thru my router 12:41:18 but my node has no idea what its external address is 12:42:37 "is working" -> I get incoming connections 12:43:30 Ah. I thought you meant incoming IP is different. 12:43:54 In the base case, Alice connects to Bob, Bob connects back to the incoming IP. If it succeeds, it adds Alice's IP to his peer list. 12:44:04 well PR#7707 is to choose an explicit incoming address 12:44:31 just didn't see what the point was 12:45:03 Multihomed servers ? 12:45:08 I guess 12:45:11 I have no idea how common that is. 12:45:20 but in that case, just set p2p-bind-ip 12:45:49 so this feature only comes into play if you are (a) multihomed and (b) want incoming addr to be different from bind-ip 12:45:51 monerod can't select with NIC to send to. 12:46:16 hmmm 12:46:19 A few people said they'd work on it in the past though. AFAIK not done yet. Needs someone with a test system and network knowledge. 12:47:26 if you always do a Bind on the socket before doing the connect() it will force it to send from that addr 12:48:19 then the only missing feature, for multi-homed, would be allowing multiple p2p-bind-ips to be specified 12:48:53 in case they want to use a subset of interfaces, more than 1, less than all. 12:50:05 and we could ignore that again by just saying "run multiple monerods on same blockchain DB and forget about it" 17:01:49 this might be a stupid question, but are payment IDs mandatory for integrated address destinations 17:02:04 if there's no payment ID then it's just an address 17:02:05 :-P 17:04:38 fluffypony integrated addresses have payment IDs contained within them though 17:04:46 yes 17:04:57 address + payment ID = integrated address 17:05:34 does everything explode if you use the integrated address prefix without a payment id? 17:06:34 that's essentially what i'm wondering 17:06:35 lol 17:10:04 It'll be dine. 17:10:33 The recipient might insult you a bit for not sending the payment id though. 17:15:10 I don't think the code actually allows for it moneromooo 17:15:47 whenever we use cryptonote::address_parse_info info; 17:15:55 You're in -dev... 17:16:08 I know i think i found a bug 17:16:15 just trying to confirm some stuff 17:16:46 whenever we use that structure with an integrated address, info.payment_id is always set 17:17:37 on the receive side, we always expect it too 17:55:51 is a boost::value_initialized(); the same as a hash of all zeroes? 17:56:51 Very likely. 22:02:19 my node crashed and ended up in a quickstart loop that eventually caused systemd to abandon the daemon. 22:03:11 or it got into a quickstart loop upon startup after a power failure. this isn't being helpful. okey doke. 22:15:03 If you mean it crashes on startup, get us a stack trace. Or if an exit on startup, log level 1. 22:15:28 A DB corruption should not be possible after power failure, but... 22:48:36 yeah i was trying to dig through my logs