当前位置: 首页 > 软件库 > Web3 > 开源货币/比特币 >

joinmarket-clientserver

授权协议 GPL-3.0 License
开发语言 Python
所属分类 Web3、 开源货币/比特币
软件类型 开源软件
地区 不详
投 递 者 梁丘诚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Release workflow status

joinmarket-clientserver

JoinMarket is software to create a special kind of bitcoin transaction called a CoinJoin transaction. Its aim is to improve the confidentiality and privacy of bitcoin transactions.

A CoinJoin transaction requires other people to take part. The right resources (coins) have to be in the right place, at the right time, in the right quantity. This isn't a software or tech problem, it's an economic problem. JoinMarket works by creating a new kind of market that would allocate these resources in the best way.

One group of participants (called market makers) will always be available to take part in CoinJoins at any time. Other participants (called market takers) can create a CoinJoin at any time. The takers pay a fee which incentivizes the makers. A form of smart contract is created, meaning the private keys will never be broadcasted outside of your computer, resulting in virtually zero risk of loss (aside from malware or bugs). As a result of free-market forces the fees will eventually be next to nothing.

Widespread use of JoinMarket improves bitcoin's fungibility and privacy. This implementation of JoinMarket also implements PayJoin.

For a quick introduction to Joinmarket you can watch this demonstration of installation and usage given by Adam Gibson during the Understanding Bitcoin conference on April 6 2019.

Wallet features

  • Segwit addresses (native bech32 ('bc1') by default; p2sh wrapped ('3') optionally).
  • Multiple "mixdepths" or pockets (by default 5) for better coin isolation
  • Ability to spend directly, or with coinjoin; export private keys; BIP84/49 compatible seed (Trezor, Samourai etc.) and mnemonic extension option
  • Fine-grained control over bitcoin transaction fees
  • Basic coin control - can freeze individual utxos to stop them being spent in any transaction
  • Can run sequence of coinjoins in automated form, either auto-generated (see tumbler.py) or self-generated sequence.
  • Can specify exact amount of coinjoin (figures from 0.01 to 30.0 btc and higher are practical), can choose time and number of counterparties
  • Uses fidelity bonds for protection against sybil attacks.
  • Can run passively to receive small payouts for taking part in coinjoins (see doc page)
  • GUI to support Taker role, including tumbler/automated coinjoin sequence.
  • PayJoin - BIP78 to pay users of other wallets (e.g. merchants), as well as between two compatible wallet users (Joinmarket, Wasabi, others). This is a way to boost fungibility/privacy while paying.
  • Protection from forced address reuse attacks.

Quickstart - RECOMMENDED INSTALLATION METHOD (Linux and macOS only)

Once you've downloaded this repo, either as a tar/zip file, and extracted it, or via git clone:

Make sure to validate the signature on the tar/zip file provided on the release page,or check the signature in git if you install that way using git log --show-signature.

macOS users: Make sure that you have Homebrew and Apple's Command Line Tools installed.

./install.sh
(follow instructions on screen; provide sudo password when prompted)
source jmvenv/bin/activate
cd scripts

(You can add --develop as an extra flag to install.sh to make the Joinmarket code editable in-place.)

You can optionally install a Qt GUI application, you will be prompted to choose this during installation.

Do note, Python 2 is no longer supported as it has reached its end of life.

You should now be able to run the scripts like python wallet-tool.py etc., just as you did in the previous Joinmarket version.

Alternative to this "quickstart": follow the install guide.

More installation guides

Usage

If you are new, follow and read the links in the usage guide.

If you are running Joinmarket-Qt, you can instead use the walkthrough to start.

If you used the old version of Joinmarket, the notes in the scripts readme help to understand what has and hasn't changed about the scripts (warning: this refers to changes from several years ago, so may be slightly outdated).

If you are looking for the available makers, run the orderbook.Public mainnet mirror: JoinMarket Browser Interface Orderbook ( �� tor)

PayJoin

If you want to use the PayJoin feature to pay/receive money to/from another BIP78-supporting wallet, read this guide.

Joinmarket-Qt

Provides single join and multi-join/tumbler functionality (i.e. "Taker") only, in a GUI.

If binaries are built, they will be gpg signed and announced on the Releases page.

If you haven't chosen the Qt option during installation with install.sh, then to run the script joinmarket-qt.py from the command line you will need to install two more packages. Use these 2 commands while the jmvenv virtual environment is activated:

pip install -r requirements/gui.txt

After this, the command python joinmarket-qt.py from within the scripts subdirectory should work.There is a walkthrough for what to do next.

Architecture notes

See architecture-notes.md.

TESTING

Instructions for developers for testing here. If you want to help improve the project, please have a read of this todo list and the Help Wanted tag on the issue tracker.

Community

Support JoinMarket and bitcoin privacy

Donate to help make JoinMarket even better: Obtain a bitcoin address here

JoinMarket is an open source project which does not have a funding model, fortunately the project itself has very low running costs as it is almost-fully decentralized and available to everyone for free. Developers contribute only as volunteers and donations are divided amongst them. Many developers have also been important in advocating for privacy and educating the wider bitcoin user base. Be part of the effort to improve bitcoin privacy and fungibility. Every donated coin helps us spend more time on JoinMarket instead of doing other stuff.

  • 问题描述 总的项目模块中依赖com.google.guava:guava:jar:的有Phoenix,Spring, Hbase-client, Hbase-server, hadoop-common. 而出问题的子模块,对此jar 包的依赖的有Spring, Hbase-client, hadoop-common. 刚开始的时候,由于adoop-common.Sparing-clond,依赖的版

  •  客户--client--server物理数据。 服务器--mysql-server是服务端 前者是mysql核心程序,生成管理数据库实例,数据库实例任务调度线程之类,并提供相关接口供不同客户端调用,后者是操作数据库实例的工具 操作mysql实例的客户端有很多,mysql-client只是其中一种,包括mysql,mysqldump,mysqlslap,这些访问,备份,压力测试的工具 mysql-

  • SFTP称作“安全的FTP”,它使用ssh文件传输协议。所以我们需要安装openssh-server ubuntu自带的有openssh-client,所以可以通过 ssh  username@host 来远程连接linux。 可是要想通过ssh被连接,ubuntu系统需要有openssh-server,可以通过如下操作: 1、可是要想通过ssh被连接,ubuntu系统需要有openssh-ser

  • Centos7 环境下,通过RPM方式安装MYSQL,出现 mysql-community-client(x86-64) >= 5.7.9 被 mysql-community-server-5.7.30-1.e 错误。 [ 原因 ]: 之前安装低版本MYSQL并未出现该问题。 个人认为应该是MYSQL版本过高,导致某些依赖无法找到。 可以将MYSQL版本降低,该问题不会出现。 也有可能安装之前删除

  • 之前做项目时,eureka-server和eureka-client写的比较混乱,今天重新分析了一下,结论如下: 1.eureka服务在pom文件中必须依赖eureka-server(spring-cloud-starter-netflix-eureka-server),然后在主程序追加注解@EnableEurekaServer 2.非eureka服务在pom文件中追加依赖eureka-clien

  • 在指令后面加上:  --nodeps --force rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm --nodeps --force

  • vue-cli升级到2.9.1之后,把webpack升级到了v3.6.0,里边去掉了dev-server和dev-client两个文件。 现在再对接借口设置不能再使用dev-server了,改在webpack.dev.conf.js里进行配置。我也是借鉴了网上的文章,然后加上自己的理解写出这篇文章。参考文章http://blog.csdn.net/qq_24563905/article/detai

  • 出错现象 这个错误是我在用vue-cli中使用webpack打包的时候,进行环境分离操作,将webpack.config.js分成三个包 webpack.common.js webpack.dev.js webpack.prod.js 之后启动npm run serve(也就是webpack-dev-server --open)的时候报的错误,package.json文件是下面这样 "script

  • kubernetes 1.12.1版本 DESC The Kubernetes API server validates and configures data for the api objects which include pods, services, replicationcontrollers, and others. The API Server services REST oper

  • 在Ubuntu Kylin 16.10 linux系统上安装mysql-server。 下面是成功安装的记录:  sudo apt install mysql-server  正在读取软件包列表... 完成 正在分析软件包的依赖关系树        正在读取状态信息... 完成        将会同时安装下列软件:   libaio1 libevent-core-2.0-5 mysql-clien

  • 老大留的作业是:在docker中用mysql容器启动两个服务实例:mysql-server,且他们的数据互通,再启动一个mysql-client。 琢磨了好一阵子啥叫server啥叫client,越琢磨越懵,还不敢问,自己百度/谷歌得一塌糊涂... 只好去问班级里的大腿,大腿昨晚上给讲了一下,现在大概有个概念了... 整理一下写出来,加深自己的记忆,顺便,万一有人和我有一样的疑惑不也就明白了呢~是

  • 最近在结合react和socket.io做应用,碰到了小坑,记录一下。 用socket.io的时候,前后台要分别引入socket.io-client 和 socket.io 在后台,因为我还用了koa,所以这里碰到了个小坑: let Koa = require("koa"); let app = new Koa(); let server = require("http").Server(app.

  • 背景 最近遇到了 kafka server 和 kafka-client 的兼容性问题。研发环境用的 kafka 集群是 2.0.0,而程序使用的 kafka-client 版本是 0.10.1.1,发现生产消息报错。将 kafka 集群的消息格式修改成了 0.10.2 后,问题解决。遂记录下 kafka 版本兼容的问题。 消息格式 kafka 的消息格式有三种,详情参考 一文看懂Kafka消息格

  • fastdfs-java-client 使用指南 to see https://blog.csdn.net/mydream20130314/article/details/84481290 , thank you #示例 package com.github.onion0715.example.fastdfs; import com.github.onion0715.example.Ap

  • 1.问题描述 使用sudo yum -y install mysql-server命令安装mysql报错 No package mysql-community-server available. 2.原因 本地没有可用的mysql-server rpm包,所以会报错。 3.解决: 从mysql官网下载rpm包 sudo rpm -ivh https://repo.mysql.com//mysql5

相关阅读

相关文章

相关问答

相关文档