--- Day changed Sun Sep 08 2019 01:14 -!- Giszmo [~leo@2407:7000:9d28:5100:5d26:c4d8:c4c1:6494] has joined #joinmarket 01:32 -!- Sentineo [~Undefined@unaffiliated/sentineo] has joined #joinmarket 01:55 -!- Sentineo [~Undefined@unaffiliated/sentineo] has quit [Ping timeout: 268 seconds] 02:36 -!- MaxSan [~four@185.156.175.35] has joined #joinmarket 03:14 -!- Giszmo [~leo@2407:7000:9d28:5100:5d26:c4d8:c4c1:6494] has quit [Quit: Leaving.] 03:34 < fiatjaf> https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/USAGE.md#funding-wallet-and-displaying-balance 03:34 < fiatjaf> the listlabels call is returning {"code":-32601,"message":"Method not found"} 03:34 < fiatjaf> what can I do? 03:35 < fiatjaf> I've already updated my bitcoind 03:46 < takinbo> fiatjaf: what versions of bitcoind and joinmarket are you using? 03:49 -!- reallll [~belcher@unaffiliated/belcher] has joined #joinmarket 03:49 < fiatjaf> bitcoind: 0.18.1 03:49 < fiatjaf> joinmarket I just downloaded from github, how can I see the version 03:50 < takinbo> can you confirm it wasn't built with the `--disable-wallet` flag? 03:52 -!- belcher [~belcher@unaffiliated/belcher] has quit [Ping timeout: 258 seconds] 03:52 < takinbo> if you cloned jm from github, that should be fine. the error though sounds like an issue from bitcoind and not joinmarket and my suspicion is that it was built without wallet support. 03:53 < fiatjaf> I just downloaded the binaries 03:54 < fiatjaf> oops, actually I have disablewallet in my bitcoin.conf 03:54 < takinbo> ok. that might be it. 04:17 < waxwing> "might" :) 04:37 < waxwing> as for that guy who wants to write about 'frontrunning' (or however you prefer to call it), i wanted to point him to that short discussion between belcher_ and gmaxwell from years ago, in case he comes back we can send him there. 04:45 < waxwing> https://github.com/JoinMarket-Org/joinmarket/issues/14#issuecomment-143509788 and he might find interesting my reference to it here: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-August/017208.html 05:20 < fiatjaf> I don't know how joinmarket works, what is tumbler or mixdepth. I'm about to fund the wallet. should I send a transaction to 3 addresses of mixdepth 0 and that will do it? 05:21 < fiatjaf> I'm reading the guide and the link about "sourcing" stuff, but I don't understand it 05:21 < waxwing> yes fiatjaf 05:21 < waxwing> you mean you followed the link to 'sourcing commitments for joins'. yes, it's a bit obscure, which is why that page prints in bold the only things you really need to know. 05:22 < waxwing> btw the 3 addresses thing (the 'sourcing commitments for joins') only matters if you are creating coinjoins yourself (being a "Taker", which is what tumbler.py and sendpayment.py do), not if you're being a "Maker" (yieldgenerator). 05:22 < waxwing> for the latter just sending to 1 address is fine. 05:23 < fiatjaf> I want to experiment being a taker and then become a maker 05:24 < fiatjaf> when I'm sending a payment it will use all my utxos? 05:26 < waxwing> fiatjaf, in that aspect it's like other wallets. it decides which utxos to use based on the amount. 05:27 < fiatjaf> what is mixdepth? 05:27 < waxwing> the main overarching concept to remember is, each mixdepth(=account) is separate. 05:27 < fiatjaf> sorry if I'm asking stuff that's already written 05:27 < fiatjaf> oh, it doesn't have a meaning besides account separation? 05:27 < waxwing> think of it like 5 pockets/accounts whatever. don't co-spend utxos from two mixdepths at once (no worry, the wallet won't allow it) 05:28 < waxwing> movements of your funds between different mixdepths happen via coinjoins, which obfuscates the linkage between them. 05:28 < waxwing> which is particularly important for running tumbler, and tumbler is the primary way that joinmarket tries to make your coin ownership private. 05:29 < waxwing> sendpayment is just something you can use opportunistically here and there (just do one coinjoin), see the comment about that at the top of the section on sendpayment.py 06:37 < fiatjaf> you mean I should do sendpayment to myself whenever fees are low? 06:37 < fiatjaf> coins at higher mixdepths are more anonymous? 06:47 -!- puddinpop [~puddinpop@unaffiliated/puddinpop] has joined #joinmarket 07:42 < waxwing> read the tumbler guide and wiki page linked at the end of the usage guide for how to use tumbler.py to make sequences of coinjoins; use sendpayment.py to do a single coinjoin whenever you like - the destination address is up to you; it can be either another address in a *different* mixdepth (use from external branch), or a remote destination to a different wallet or a payment. 07:42 < waxwing> you can basically do anything you like, just don't do coinjoins where the destination address is in the same mixdepth. 07:43 < waxwing> think of your joinmarket as 5 different wallets (accounts). moving between them only via coinjoin, spending out of the wallet however you like (including coinjoin, if you like) 07:43 < waxwing> fiatjaf, ^ 07:51 < kristapsk> fiatjaf, in case you run yield generator and deposit into mixdepth 0, yes, higher mixdepths likely will have bigger anonimity (because mixes usually go from mixdepth 0 to 1, from 1 to 2, etc) 07:53 < waxwing> over the long term there's no correlation between "depth" and number of coinjoins an output has gone through, though. 07:53 < waxwing> which is why belcher_ has often commented he regrets the term "mix*depth*" a bit; it's misleading, although it might temporarily be true. 07:55 < fiatjaf> I did a sendpayment.py with 6 counterparties 07:55 < fiatjaf> now where are the coins? 07:55 < fiatjaf> they don't seem to have appeared in my destination wallet 07:56 < fiatjaf> can I see the transactions involved? 07:58 < waxwing> did you use Qt or CLI? 07:58 < fiatjaf> cli 07:58 < waxwing> you should have seen a txid at the end of the output. you can check that on a block explorer. 07:59 < waxwing> assuming it did actually go through; if it didn't you can check the joinmarket wallet still has the coins. 08:27 < fiatjaf> oh, sorry, it was asking me to confirm before actually sending the transactions and I didn't see it 08:27 < waxwing> heh, i guessed as much :) 08:28 < waxwing> the point there is that you want to know exactly how much you're being charged (although you can strictly limit it with the setting it prompts you about at the start, to be fair). 08:28 < waxwing> there's also a --yes option if you don't want it, but i wouldn't recommend it really. 08:30 < fiatjaf> 2019-09-08 12:29:33,438 [INFO] total cj fee = 138 08:30 < fiatjaf> 2019-09-08 12:29:33,439 [INFO] total coinjoin fee = 0.0445% 08:31 < fiatjaf> so I'll pay 138 sat in coinjoin fees, but how much in transaction fees? 08:31 < fiatjaf> total estimated amount spent = 350138 08:32 < fiatjaf> I tried to send 310000 08:32 < fiatjaf> Based on initial guess: 40000, we estimated a miner fee of: 827 08:32 < fiatjaf> fee breakdown for me totalin=369000 my_txfee=727 makers_txfee=100 cjfee_total=218 => ch 08:32 < fiatjaf> angevalue=58055 08:33 < fiatjaf> so I guess miner fees weren't shown to me before, but calculated on the go 08:36 < fiatjaf> so I got a transaction with 3 inputs from me and 3 from other people, 4 outputs equal to my desired destination output, 1 change output and 3 outputs with random amounts to somewhere else. 08:37 < fiatjaf> isn't that good enough? in my complete naiveté I would consider everything here successfully coinjoined and hidden and unlinkable. 08:37 < fiatjaf> ok, now I'll read more 09:19 < kristapsk> great news, current Bitcoin Core master breaks JoinMarket - https://github.com/bitcoin/bitcoin/issues/16832 10:06 < waxwing> fiatjaf, yes calculated on the go because unlike a normal wallet, we don't know how many inputs the transaction has before we start. that's the nature of coinjoin. 10:06 < waxwing> kristapsk, oh dear. thanks for heads up. 10:10 < kristapsk> found it by accident, did testing on one Core PR, and had some testnet coins in JM wallet, which I wanted to transfer :) 10:49 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has quit [Remote host closed the connection] 10:50 < fiatjaf> how bad is the idea of writing a web UI for joinmarket? 10:56 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has joined #joinmarket 11:26 < kristapsk> waxwing, it isn't issue with new Bitcoin Core master, the same behaviour is with v0.18, it happens if multiple wallets are loaded in Bitcoin Core 11:27 < kristapsk> guess we should handle this somehow in JM code 11:27 < kristapsk> for example, assume default wallet (wallet.dat) and add some joinmarket.cfg option to specify different wallet, if user wants so 11:28 < waxwing> kristapsk, we have that 11:28 < waxwing> rpc_wallet_file in the config 11:28 < waxwing> i use it myself 11:29 < waxwing> i'm on 0.18 too, just checked 11:30 < kristapsk> ok, then just adding some try-block's at some places looks right thing to do, as currently one could use JM without problems, then creates and loads another wallet in core, and JM starts crashing with exceptions 11:33 < waxwing> kristapsk, oh, do you mean: if you create a new wallet while JM is still running, it crashes? 11:34 < kristapsk> no 11:34 < waxwing> or is it like: if you don't set the rpc_wallet_file in joinnmarket.cfg, but you add a new Core wallet, then it crashes? 11:34 < kristapsk> JoinMarketQt crashes on JM wallet load in case there is more than one wallet loaded in Core 11:35 < kristapsk> yes, the second option 11:35 < kristapsk> and that second wallet does need to be current, your selected one could be the same 11:36 < kristapsk> in any case, crashing with exception is bad, there should be either error message for humans or handling of such cases 11:38 < waxwing> right 11:38 < waxwing> thanks for noticing it 12:38 < waxwing> kristapsk, the issue is one of defaults i presume, see https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmclient/jmclient/jsonrpc.py#L65-L68 12:38 < waxwing> i presume that if the Core instance hasn't had a wallet added then it's OK, but if it has, then there's an insistence that all calls use the /wallet/ path in the request. 12:38 < kristapsk> waxwing, yes, I kinda have fix already 12:39 < kristapsk> try listwallets and specify first returned in JsonRpc contructor 12:39 < kristapsk> assuming it is the default 12:39 < kristapsk> if rpc_wallet_file is not specified in joinmarket.cfg 12:40 < kristapsk> in v0.16.3 my default wallet is "wallet.dat", in v0.18 in testnet it's "", so can't be hardcoded 12:44 < waxwing> oh 12:44 < waxwing> i see thanks 12:58 < kristapsk> waxwing, https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/395 13:18 -!- Netsplit *.net <-> *.split quits: so 13:19 -!- Netsplit over, joins: so 13:34 < takinbo> i once had the issue kristapsk is referring to but mine was different, if you have the default wallet loaded with an empty name and others also loaded with different names, jm crashed if you didn't specify a wallet name in `rpc_wallet_file` 13:34 < takinbo> bascially, it wouldn't work with an empty file name if you intended to use the default wallet without a name 13:36 < takinbo> the solution i think i implemented was to use `self.url = '/wallet/'` without the `wallet_file` parameter. 13:38 < takinbo> kristapsk's solution will load the first wallet if none is provided and there are multiple wallets loaded. i suspect it has the same effect as loading the default wallet with no name. 13:38 < kristapsk> ahh, yes, there is len() > 0 check :) 13:40 < takinbo> assuming all the wallets have a name, this has the side effect of loading the first wallet which might not be what the user wants 13:40 < takinbo> maybe it should fail with a error rather than an exception and provide some guidance for the user to explicitly configure the wallet they want to use? 13:51 < kristapsk> I think advanced users actively using multiple wallets should know what they are doing and specify rpc_wallet_file in config 13:51 < kristapsk> this will not work as expected only if default wallet is closed 13:53 < kristapsk> and there isn't risk of losing funds, it will just import all JM addresses as watch-only in the wrong wallet and ask user for rescan 13:53 < kristapsk> but I think it's better to discuss this on github, not here 13:53 < takinbo> certainly 14:27 -!- reallll is now known as belcher 15:02 -!- Zenton [~user@unaffiliated/vicenteh] has quit [Ping timeout: 264 seconds] 17:57 -!- CgRelayBot [~CgRelayBo@p5DE4AE41.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] 17:58 -!- AgoraRelay [~jmrelayfn@p5DE4AE41.dip0.t-ipconnect.de] has quit [Ping timeout: 258 seconds] 18:09 -!- CgRelayBot [~CgRelayBo@p5DE4A2DC.dip0.t-ipconnect.de] has joined #joinmarket 18:11 -!- AgoraRelay [~jmrelayfn@p5DE4A2DC.dip0.t-ipconnect.de] has joined #joinmarket 19:51 -!- raedah [~x@192.30.89.51] has joined #joinmarket 22:32 -!- Giszmo [~leo@2407:7000:9d28:5100:5d26:c4d8:c4c1:6494] has joined #joinmarket 22:39 -!- Sentineo [~Undefined@unaffiliated/sentineo] has joined #joinmarket 23:51 -!- Ulises68Trantow [~Ulises68T@ns334669.ip-5-196-64.eu] has joined #joinmarket