03:22:47 Howdy y'all 03:22:47 I am working on an offline seed generator for monero seeds using dice as a source of entropy. 03:22:47 Does anybody know what the proper amount of dice rolls (on 6 sided dice) are needed to reach proper level of entropy? 03:22:53 In seedsigner they use 50 rolls for 12 word seeds and 99 rolls for 24 word seeds. (Which it should not matter as the dice rolls increase entropy and shouldn't directly translate to phrases. 03:23:04 Based on some Math from coldcard, a d6 dice provides 2.585 bits of additional entropy per roll 03:23:04 This means: 03:23:04 50 rolls for 128 bit 03:23:04 99 rolls for 256 bit 03:23:39 Would 100 dice rolls (assuming the dice are casino dice with proper random roll) be enough for source of entropy? 03:24:57 Here is a link to sample code of my implementation https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/323#note_16712 03:42:50 Yes, I believe Monero's current seed scheme has 256-bits of entropy, so 100 perfect six-sided dice rolls would provide enough entropy. There is a new seed scheme proposed in Jamtis, called Polyseed, which only has 150 bits of entropy. 03:44:17 From a UX perspective, you would be hard pressed to find anyone who would be willing to roll and record 100 die rolls :P 03:49:49 You don't "need" the full entropy of a seed though if you determine it to be within your security threshold. As long as there is a deterministic formula for converting a sequence of die rolls into a binary string, you could use any number of die rolls. 03:51:18 thank you for the answer 03:51:54 The random number generator on raspberry PI zero is not something I would trust fully. I've had microcontrollers not take ambient noise or temperature as entropy source so it would not be far fetched to see it fail. The other solution is dedicated crypto chips with a better random generator but it raises cost 03:52:52 I know the UX is a bit clunky but it is more the option for those who are a little bit more paranoid and are ok with feeding the entropy manually. 03:54:02 I piggyback on the seed generate function of monero python library so I can just feed it a 32 bytes of entropy generated from a hash of the dicerolls as a string 05:40:31 "From a UX perspective, you would..." <- back in my day, we grabbed the dice from the yahtzee set and did 5 rolls at once 08:17:21 "From a UX perspective, you would be hard pressed to find anyone who would be willing to roll and record 100 die rolls :P" <-- I think people would do it 08:17:32 how many dice per seedword 08:17:34 ? 08:17:40 5 ot 6 D6 08:18:22 roll 5 or 6 D6, look up your word. Repeat 24 times (25th is a checksum word) and u done. Might be worth the effort to stay offline 08:24:41 You can even roll partial dice if you put the series of rolls as custom entropy to be hashed. 08:24:55 (so you have fewer rolls to make overall) 09:13:45 as i understand wallet2 API connects to daemon and gets UTXOs for transaction building 09:25:56 Spent or unspent, neither of them knows (except for the ones the wallet owns). But yes. 09:54:45 im doing this wm->setDaemonAddress("..."); 09:55:11 and instancing a Monero::Wallet from words 09:55:45 can this thing build and transactions? 09:55:55 build and sign* 09:56:43 the thing im curious about is that we need to create wallets in BTC daemon for UTXOs 09:56:59 is Monero daemon working with the same way? 09:57:18 or when i connect a node like this i can just build and sign transactions? 10:01:39 as i understand it is possible to build and sign transactions with cryptonote API tooo but then i need to get something like UTXOs from a node 10:05:09 get_outs 10:05:29 called by wallet2::get_outs 10:09:20 Wallet::Wallet::init(const char *argv0, const char *default_log_base_name) 10:09:39 Monero::Wallet::init(const char *argv0, const char *default_log_base_name) 10:09:41 this thing 10:09:55 what are the parameters of this? 10:20:21 from commit f9b22a7b01, does the '--hw-device' option require the user to specify a ':' and a device path afterwards? 10:21:49 what does wallet2 do to connect to nodes? 10:22:35 it may be problematic for iOS and Android 10:31:02 Opens a connection, sends some JSON RPC, gets result as JSON. 10:31:14 With optional SSL. 10:31:25 ummmmm this thing connects to RPC server then 10:33:03 is there an RPC server for testnet i can use? 10:33:23 we have a node setup but i can't use that right now 10:44:05 You use your own server. 10:44:43 Otherwise you don't learn how to use one, you are subject the vagaries of whether it's up or not, and it can just lie to you. 12:31:08 "is there an RPC server for..." <- https://monero.fail/?nettype=testnet. Since this is testnet, deceptive nodes (if any) aren't going to cause real damage. This was useful for me because if I run my e-commerce store locally, it uses either my local test net node or if that's behind, I use one of the nodes in monero fail. For production, I use a node run on the cloud. 12:31:24 looooooking thank youuuuuuuu 12:32:10 im curious about wallet2 API 12:32:46 where does Monero::WalletManager::setDaemonAddress() connect to? 12:32:53 RPC server or a Monero node?? 12:36:01 A... monero node's RRC server. 12:38:05 To be clear, the node and the wallet both have a RPC server, but expose a different set of RPC. 12:43:55 wm->setDaemonAddress("https://testnet.xmr.sh/"); 12:43:57 is this wrong????? 12:45:16 MeowingCat: you need the port number "http://testnet.community.rino.io:28081" 12:45:34 oh that one does it have it lol 12:45:57 trying 12:46:13 do i need to do wallet->init()??? 12:46:35 why ask? try it and see 12:47:06 im already trying everything 12:47:07 terminate called after throwing an instance of 'tools::error::wallet_not_initialized' 12:47:07 what(): wallet is not initialized 12:47:11 getting this errorr :((( 12:47:55 Clearly not tried everything yet then. 12:48:20 Looking at what existing working code does should help. 12:48:26 ie, the GUI 12:48:43 i looooked at monero-gui 12:48:52 but couldn't find any usage of these things 12:49:17 Hmm. OK, I'm surprised. Well, use whatever API calls it uses. 13:03:58 there are Monero::Wallet::mainAddress() and Monero::Wallet::address(uint32_t accountIndex = 0U, uint32_t addressIndex = 0U) 13:04:25 i haven't seen anything about setting network 13:09:13 ohh okiiiii i already made it in recoveryWallet() call 13:09:20 testnet parameter 13:14:27 interesting because after wm->setDaemonAddress("http://testnet.community.rino.io:28081"); 13:14:36 wm->connected() is returning true 13:21:13 still getting this terminate called after throwing an instance of 'tools::error::wallet_internal_error' 13:21:13 what(): Failed to get height 13:25:26 Looks like comms to node failed. 13:25:53 Bump log level up, try again, read log, work from there. 13:52:35 terminate called after throwing an instance of 'tools::error::wallet_not_initialized' 13:52:36 what(): wallet is not initialized 13:52:37 this error 13:52:46 w->init("", "walletlogs"); 13:52:48 im doing this 13:52:51 but getting this error 14:05:52 i need to understand something 14:06:54 is the way of how wallet2 API works that holding private seed on daemon? 14:07:03 can i just send private view key? 14:07:46 The wallet2 object will hold your secret keys. The seed is that, basically. It can be accessed via RPC, though it is not recommended. 14:07:54 The node daemon does not need it. 14:08:11 i mean 14:08:39 If you mean "I want to give someone my secret key and let them do the work for me", then look at monero-lws. 14:08:46 does wallet2 even provide a way to build and sign transactions without sending private seed anywhere like RPC server?? 14:09:07 noooo we will not send private seed anywhere 14:09:32 Then wallet2 can build and sign txes without sending the secret keys anywhere. 14:09:34 we can send private view key if it is needed for building transactions (like for getting UTXOs) 14:09:42 niceeeeeeee 14:10:03 Monero works with UTXOs 14:10:17 then i need to send private view key to RPC server right??? 14:10:39 It's like you do not use the information you're given before asking the same question again. 14:11:56 https://pastebin.com/FWv59kMu 14:12:04 C++ code 14:12:12 im curious about what is wrong here :(((((((((( 14:13:08 FWIW, I'm not looking, I'm not familiar with that API as I said before. 14:13:11 tfw moo forgets what c++ code looks like 16:58:58 INFO logging contrib/epee/src/mlog.cpp:273 New log categories: *:WARNING,net:FATAL,net.http:FATAL,net.ssl:FATAL,net.p2p:FATAL,net.cn:FATAL,daemon.rpc:FATAL,global:INFO,verify:FATAL,serialization:FATAL,daemon.rpc.payment:ERROR,stacktrace:INFO,logging:INFO,msgwriter:INFO 17:00:20 im getting this for this RPC server: http://testnet.community.rino.io:28081 17:03:53 Bump log level. By default, the wallet does not log (to avoid leaving private info in the log). 17:58:07 i have a Monero::PendingTransaction object how can i serialize it? 18:09:36 MeowingCat: serialization should be like this I think (close enough) https://www.irccloud.com/pastebin/ppnofafq/serialization 18:10:42 UkoeHB, loooooooooking thank youuuuu 18:13:00 it only works for objects with the `BEGIN_SERIALIZE()` etc. macros 18:23:22 you mean i can't serialize a TX with things in wallet2_api.h??? 18:26:03 MeowingCat: no, I mean "it only works for objects with the `BEGIN_SERIALIZE()` etc. macros". You have to go look at objects to see if they are serializable. 18:31:46 okiiii