What would be the easiest way to make this transition, that could work even for newbies who want more privacy? jamapp.org maybe?
I think it really depends on the comfort level of the user with their OS. JoinMarket does require a connection to a full bitcoin core node, which may be an obstacle for some new users. For those comfortable with or currently already running a bitcoin node, I think the install documents are pretty detailed and well written. Personally, I think Jamapp.org is a great product for anyone comfortable using Linux based operating systems. The Windows installation is also very straight-forward, and most people are probably using Windows. While JoinMarket is a 'power-user' type of tool, a lot of effort has been made to make it easy to use and understand across a wide variety of situations. 
|
|
|
For anyone interested in JoinMarket or still following this thread, a new release was posted in January 2023 on GitHub. This release includes some needed changes to address issues with Tor connections, and for this reason principally, all users should upgrade as soon as possible, and should also recreate their joinmarket.cfg file.
This release also includes corrections to transaction fee estimation for non-standard output types, fixes to sendpayment, and corrections to a few minor bugs.
The release now also includes OTS timestamp files of the gpg signatures provided, that can be verified using the opentimestamps client. JoinMarket ReleasesRelease NotesJoinMarket's Awesome, ManHappy CoinJoining.
|
|
|
I wonder, would it be possible for a competing miner to capture these blocks and insert their own (valid) transactions in place for broadcast?
No because the block has to be changed and if you change even a single bit the final hash will be entirely different meaning it will no longer satisfy the target check so it has to be mined again. As I was typing that, I was thinking that was the case, but it's been quite some time since I've dove into the technical details of bitcoin mining. Thanks for clarifying. What would be the goal or take away from a malicious node broadcasting these intentionally?
I don't think this is intentional. To give a better answer we have to know the client the said node is running which may be acquired if your logs stored the IP address of the node that sent the invalid block. In which case we may be able to connect to that node and see if it sends its useragent and that may give us more information like the client name which we could find on GitHub and report this bug. While I do have logips set to 1, everything I can see in the debug.log is quoted above. Is there somewhere else I can pull the IP of the invalid broadcaster from?
|
|
|
The full output with tx data is here: block.txtThis only contains transaction hashes no the full tx data that is needed to verify the block manually and see what the problem is. Is this something I can extract from my node, and if so, can you tell me how, and I'd be happy to post anything that helps?I'm a little high. Here is the correct one I think: block2.txtI checked a couple of transactions in the block, the first being coinbase is obviously not found anywhere else but also the second transaction is not found either.
Yes, some of the transactions I looked for are missing, but the few I found did come back as being confirmed in the real block 784121, such as these randoms transactions ( 1) ( 2) ( 3) I selected. P.S. I noticed something in the previous block's coinbase transaction, the signature script contains the word "F2Pool" in it. Could it be the F2Pool that messed up or is it someone else using that name? If we had the full block of this new one we could speculate if this is from the same miner/pool.
It's curious that it's happened more than once over the previous days. If indeed this is a configuration error, which seems likely, someone is losing a fair amount of mining rewards I think. I wonder, would it be possible for a competing miner to capture these blocks and insert their own (valid) transactions in place for broadcast? Maybe a dumb question, lol. In my log there were several minutes seperation from valid blocks on either side on the bogus block. What would be the goal or take away from a malicious node broadcasting these intentionally?
|
|
|
I've just found one in my logs as well: 2023-04-06T00:47:01Z UpdateTip: new best=00000000000000000004ef043082d84196e3845c9628ee20764c591c1fb29d6c height=784120 version=0x37ffe000 log2_work=94.102717 tx=821173080 date='2023-04-06T00:46:39Z' progress=1.000000 cache=6.9MiB(11094txo) 2023-04-06T00:56:58Z ERROR: ConnectBlock(): too many sigops 2023-04-06T00:56:58Z InvalidChainFound: invalid block=000000000000000000046a2698233ed93bb5e74ba7d2146a68ddb0c2504c980d height=784121 log2_work=94.102730 date=2023-04-06T00:56:48Z 2023-04-06T00:56:58Z InvalidChainFound: current best=00000000000000000004ef043082d84196e3845c9628ee20764c591c1fb29d6c height=784120 log2_work=94.102717 date=2023-04-06T00:46:39Z 2023-04-06T00:56:58Z ERROR: ConnectTip: ConnectBlock 000000000000000000046a2698233ed93bb5e74ba7d2146a68ddb0c2504c980d failed, bad-blk-sigops 2023-04-06T00:56:58Z InvalidChainFound: invalid block=000000000000000000046a2698233ed93bb5e74ba7d2146a68ddb0c2504c980d height=784121 log2_work=94.102730 date=2023-04-06T00:56:48Z 2023-04-06T00:56:58Z InvalidChainFound: current best=00000000000000000004ef043082d84196e3845c9628ee20764c591c1fb29d6c height=784120 log2_work=94.102717 date=2023-04-06T00:46:39Z 2023-04-06T01:03:02Z UpdateTip: new best=00000000000000000003f84a139ad4a61a2812ee2633b5d30bb087a3c4480752 height=784121 version=0x3fffe000 log2_work=94.102730 tx=821175327 date='2023-04-06T01:02:19Z' progress=1.000000 cache=8.9MiB(27288txo)
This is the result of "bitcoin-cli getblock 000000000000000000046a2698233ed93bb5e74ba7d2146a68ddb0c2504c980d": { "hash": "000000000000000000046a2698233ed93bb5e74ba7d2146a68ddb0c2504c980d", "confirmations": -1, "height": 784121, "version": 540082176, "versionHex": "20310000", "merkleroot": "3bf92f16ab88b82c8a23f3956075579c3d0fcdff4e8680eeebfdbf6a1eff5b5a", "time": 1680742608, "mediantime": 1680738952, "nonce": 1525312513, "bits": "1706023e", "difficulty": 46843400286276.55, "chainwork": "000000000000000000000000000000000000000044b9330c4d3c5eb4f1bf358a", "nTx": 1995, "previousblockhash": "00000000000000000004ef043082d84196e3845c9628ee20764c591c1fb29d6c", "strippedsize": 762307, "size": 1711401, "weight": 3998322,
The full output with tx data is here: block.txtInteresting, indeed.
|
|
|
Quick question: Was the IRC server down or have trouble yesterday? If so, what happened?
I had my first experience with JoinMarket yesterday morning. I decided to tumble some coins using the tumbler.py script. I started it and went to bed. When i woke up, the script was just trying to reconnect to the IRC server over and over getting a connection timed out error 110. I tried a lot of stuff but nothing worked. I could connect to the IRC server manually with HexChat but none of the scripts would. I checked again this morning and it's back up and running. I'm just curious what happened. I joined the #JoinMarket channel on FreeNode and saw 3 or 4 other people ask if the server was down but no one responded.
Thanks!
The IRC pit was down for 8 hours or so yesterday. Seems to be back up and working now. There are some solutions being work on, such as this PR.
|
|
|
Following. Thank you for working on this important topic (privacy).
|
|
|
My initial interaction with the game follows... LOOK AT CELL DOORThe door is made on thick iron bars with an electronic locking mechanism. It has a keypad. LOOK AT KEYPADIt's a full QWERTY keypad. USE KEYPAD**Prompted for password to proceed**LOOK AT FLOORAn iron plated floor. on which there is a skeleton and some rusted gears LOOK AT SKELETONA dusty skeleton, covered in rags. It's wearing a jacket. LOOK AT RUSTED GEARSOld rusted gears. LOOK AT JACKETA ratty leather jacket. It contains a note, a map and a knife. LOOK AT NOTEThe note is faded and barely legible but you can make out the message:
I fear I may perish soon. The portal sent me here. Now, I'm trapped with no way out. I think this map holds the key but I can't decipher it. LOOK AT MAPMap image displaysLOOK AT KNIFEA chipped and rusty knife. I can't figure out any other methods of interacting with the rusted gears, maybe there is something more there. You can pick up the knife, note, jacket, and map. The items are interesting, but I haven't been able to use them in any way that seems helpful. I put the jacket on the skeleton, some other seemingly useless tasks, and then got kind of bored. I can't seem to move around or look at anything else in the cell. I'd be interested what other commands / interactions have been discovered. I'll update this post if I find anything else interesting or useful. Fun! 
|
|
|
I have an idea, and guys, let me know if this is decent or crazy or whatever: or if this is already what is being done by JoinMarket, Shuffle, Whatever.
1. I make a website or a server for this purpose. 2. It asks users to create their transactions, and a given time limit, say 30 minutes or 1 hour. 3. Every 30 minutes, or every hour, it gets back to all the users with the giant CoinJoin transaction formed thus far and asks all the people to sign. 4. The site itself takes a fee, and that's some how inserted into the process. 5. Assuming the site is "trustable", then only outsiders are "attackers" and they're not going to learn much except "I see 100 inputs and 200 outputs, and I own 20 of them. I dunno who the other 80 are." 6. Repeat every hour or every whenever. Or every 100 people. Or once a day. 7. Java script or open source client side signing thingy that can sign for you if you're away from your computer so the site doesn't have to wait an hour when it reaches the minimum number of people.
The other idea I had, which I mentioned a long time ago, is like a traditional mixer, in that the mixer site itself has to be trusted, but it does everything internally, and you just send your coins. Instead of the traditional mixing of unrelated inputs and outputs, it's basically a CoinJoin mixer that gets all deposits and spits out the transactions just like a traditional mixer. The only downside is having to trust the site.
I think it's at least a decent idea, although implementation might be tricky. One limitation with JoinMarket is the ability to easily facilitate a transaction with a very large number of parties. As of right now, there are only about 50 "makers" on the orderbook, and likely many of those are actually the same people, running multiple yield generator bots. The largest coinjoin done using JoinMarket that I am aware of had 17 parties. (that might not even be the most interesting thing about that transaction...)  I think something like this would be possible to build within JoinMarket, such that "takers" are given an option to delay and group their transaction with other takers (and makers, maybe), but again, I'm sure the coding would be substantial. A better solution for JoinMarket will likely be simple growth. The GUI is probably helping to bring in more users. An Electrum plugin could also be potentially huge for JoinMarket, bringing fungibility (is that a word?) to many more users. I think some privacy conscious websites may also benefit from implementing JoinMarket transactions into their wallet structure (online casinos, darknet markets, etc.) which will also help the current limitations. Interesting times.
|
|
|
Lots of good updates in this one. JoinMarket v0.1.4 Release (Github)This is a normal release, bringing bug fixes and new features. Notable changesJoinMarket v0.1.4 Release NotesThe secp256k1 library can now be used in JoinMarket. It provides the very well tested and robust code used in Bitcoin for the underlying signing and ECC operations. It is recommended that everyone who is able to use secp256k1 with JoinMarket. In case it cannot be installed, joinmarket should continue to run exactly as before. - Improved Stability of Tumbler Script
Many small bugfixes and features have been added with the aim of making the tumbler script more stable and more likely to complete the entire tumbler job without crashing - Broadcasting Transactions via Makers
In order to help stop spies that sybil attack the bitcoin p2p network in an effort to learn the origin IP address of a transaction, JoinMarket now has a feature to ask a maker to broadcast the coinjoin transaction with their IP. JoinMarket debug logs are very useful to developers, but because they contain private information users are often unwilling to share them publicly.
For this reason there is now a debug log scrubber script which replaces sensitive information with placeholders that allow debugging but do not ruin privacy. The history of the internal wallet can now be displayed. For yield-generator users it can work out the effective annual interest rate, as though yield-generator was a savings account. Great work devs, thanks!  Additional Information: JoinMarket WikiOfficial ThreadJoinMarket SubredditJoinMarket IRC Webchat
|
|
|
Same problem. 
|
|
|
@CryptoImperator, I've sent you a PM regarding my order a couple of days ago. When should I expect a response?
I am still waiting for my coin to be loaded. 
|
|
|
I had a full node, i recieved DDoS all weeks... i dont like that mi ip are visible, if i could set on tor ip i could set my node again
You can setup your node to only use tor. See this page for more details.
|
|
|
@CryptoImperator, I've sent you a PM regarding my order a couple of days ago. When should I expect a response?
|
|
|
I wish I could figure out how to register the node I am running on my spare Windows desktop. I have port 8333 forwarding to the Qt wallet and it shows as being reachable on Bitnodes' site.
It's certainly not user-friendly to get your node verified. I have no idea how you would do it on Windows, but maybe you can use a linux device from the same IP?
|
|
|
A protocol level change to incentivize nodes would be very difficult, if even possible, for so many reasons. Anything with incentive will be hit hard by scam attempts. Also, consensus for changes becomes more difficult as bitcoin project grows. You can be sure that any BIP to incentivize full nodes would be debated as much as changing block size limits has been. I don't see it happening, personally. FWIW, the bitnodes incentive program is now going to be continued past the original expiration date, thanks to 21.
|
|
|
|