PR: Add Joinmarket Tumbler Support with Logging and Scenarios#6
PR: Add Joinmarket Tumbler Support with Logging and Scenarios#6DavidRajnoha wants to merge 8 commits into
Conversation
Added the support to start tumbler script via RPC Refactored JM Client to separate maker/taker/tumbler subclasses Modified takers to be able to wait between coinjoin attempts
The logs from joinmarket now follow the format of wasabi wallet listcoins, listunspentcoins and listkeys method, supporting the fields that are possible to gather or derive.
Added the option to generate tumbler scenarios and created few default scenarios.
Contains information about running joinmarket specific scenarios
|
Hi, I’m continuing to extend this repository as part of my thesis. Could you please let me know whether this will be merged, or if it is expected to be closed? Thank you. cc: @jirigav |
|
In which direction are you extending the repository? I have other work extending this repository in my fork that I did as part of my master thesis that I did not get to merge due to low priority of it. I was planning to revisit it in September / October as I will officially start my PhD. It might be beneficial to check it out, I can provide you a quick overview of the work I did if interested. One of the major updates is the possibility to run the emulations manager within the same cluster as the emulations do. The options are then IMO merge this and also the other work I have done as soon as possible / not include my changes at all. My (of course opinionated :)) preference is to get my changes in, but I would need to know more context from your side to get the full picture. |
|
Hi, as @DavidRajnoha said, this PR had a very low priority (generally WW2 had a bigger priority than JM), but it would be nice to have it merged. I think that we could merge also the other changes from David, but that can be a separate PR. @DavidRajnoha: There were some changes in the repo since this PR was opened, so please merge them first into this branch. Then I would test it - if you can provide me with some instructions on how to run JM that would be great - and then we can merge it. Doing it in september/october is fine for me, but I don't know if @ManasComp needs these changes sooner or not. |
|
Hello, and thank you both for the context. I was not aware of David’s additional work when I started extending the repository, so there may already be some overlap between our implementations. In my fork, I have worked on broader Kubernetes support, additional JoinMarket functionality, container orchestration, refactoring, diagnostics, and logging: https://github.com/OndrejMan/coinjoin-emulator The emulator is being used as part of a larger pipeline for my thesis: https://github.com/OndrejMan/coinjoin-pipeline The main goal of the thesis is to automate the emulation and analysis of Bitcoin transactions and compare the results produced by So far, my priority has been to build a working proof of concept and verify the overall architecture. The current implementation should therefore not yet be considered production-ready. I am now planning to review and redesign parts of it more systematically. I do not currently need PR #6 or David’s other changes to be merged immediately, so September or October would not block my current work. However, it would be very useful to see David’s branch earlier, before I begin the redesign, so that I do not unnecessarily reimplement the same functionality. David, could you please share the relevant branch or fork and, if possible, provide the brief overview you mentioned? I can then compare the two approaches and identify which parts should be reused, adapted, or implemented differently. Where appropriate, I would of course preserve the original commit authorship or add co-authorship when incorporating changes. I believe we are meeting on 28 July, so we can also discuss the architecture and possible integration strategy in more detail then. |
|
https://github.com/DavidRajnoha/coinjoin-simulator/tree/kubernetes-openshift-with-shadowsocks Shared improvements (usable by any coinjoin implementation)
The simulator originally ran locally using Docker. This group of changes adds the ability to deploy and What was added:
These changes make long-running remote simulations more robust and easier to debug when something goes What was added:
JoinMarket-specific improvements
The JoinMarket engine orchestrates many simulated JoinMarket clients (makers and takers). These changes What was added:
Scenarios define the parameters of a simulation: how many makers and takers, their wallet sizes, fee What was added:
|
|
Thank you very much for the comprehensive overview and for sharing the branch. There is clearly some overlap between our implementations, particularly in the Kubernetes-related functionality. I also noticed that you have made several changes to Given the scope of the changes in your branch, I plan to use it as the new baseline and gradually reapply and adapt my changes on top of it. This should be considerably more practical than attempting to merge the two implementations directly. Since you will soon be starting your PhD and may continue working on these projects, it would be useful for us to discuss any substantial planned changes to I would also like to ask our supervisors to let us know if they are aware of any other relevant forks, branches, ongoing work, or unpublished changes that may eventually need to be integrated. Having this information early would make it easier to coordinate the development and avoid similar duplication in the future. Thank you all. |
This PR introduces Joinmarket tumbler functionality along with improved logging and scenario generation: