bisq-network / projects Goto Github PK
View Code? Open in Web Editor NEW@bisq-network project management
Home Page: https://bisq.wiki/Project_management
@bisq-network project management
Home Page: https://bisq.wiki/Project_management
/cc @bisq-network/support-agents (so everyone is aware of this work in progress)
@bisq-network/support-agents
Triage access to the support reposupport case
issue label in the support repository@bisq-network/support-agents
linking to the wiki and asking everybody to read it and take action, and to please 👍 this message to indicate you got it and will do. Mention / link to the screencast. Ask to respond with any questions or feedback, and to make edits to the wiki as appropriate (#18 needs to be done first!). Also ask agents to #reference this issue when they create their first case tracking issue, so we can easily realize when the task immediately following below is finished.@l1-support-agents
and @intern-support-agents
have created at least one support case issue correctly
@bisq-knight
@leo816
@huey735
@mwithm
@bayernator
@wiz
(?)@m52go
(?)This is a Bisq Network project. Please familiarize yourself with the project management process.
"In the wake of the Apr 7th security incident, it's clear that we need to take our security practices to the next level. " (cbeams)
The purpose of this project is to create and follow a roadmap to establish a security team in terms of management structure, its duties, authority and responsibilities.
I propose and drive the following strategy to get to a point where a "security team" can be effective:
short intro video I will create a short video presentation where I introduce the idea of a security team by taking a look at the past and also by taking a look at the future, what happened already, what will happen eventually. In the course of the presentation I will be asking questions on how such a security team can look like, in terms of definitions, agenda and also how it can integrate with the Bisq DAO.
call agenda I will create a (template) gdoc accompanying the presentation where everyone is welcome to share their thoughts on the questions I asked. This very gdoc will become the agenda for the kickoff-call held week 20/2020.
call The call will have discussions and decisions on the agenda points. One followup call can be held if the discussion needs regrouping. I will host and moderate these calls.
let the DAO decide The outcome of the call(s) is going to be formed into a Bisq proposal ready to be accepted or rejected by the Bisq DAO in cycle 13 (around May 20th, 2020).
done If and only if the DAO approves the proposal, the information will be transcribed into the Bisq wiki and the security team can take up its work.
I set the labels according to the progress that is already made. Please adjust if necessary. Also, I skipped some headline because it seemed to me that it is already decided that we do this project and cannot guess why the admin team wants the security team.
We have reason to believe that account signing protections rolled out in 2019 have not reached a critical mass of propagation in certain markets and may be impeding liquidity growth. This project exists to assess the actual state of propagation and take actions to improve it where necessary.
As it is critical to prevent scam attempts in markets with high liquidity with payment methods with a relatively high charge back risk we need to get the newly introduced account signing into a state where we reach and exceed past trading volumes again.
Based on the account signing evaluation I see this project delivered when we reach following goals in our major markets (EUR, USD) within the next three months:
Will be posted as soon as required tasks are clear to make this project a success.
This is a Bisq Network project. Please familiarize yourself with the project management process.
A lightweight and stable monitor for seed nodes to detect if a seed node is not in the expected state. Instead of requesting the data itself (which is pretty heavy) we request an inventory list with the number of p2p data objects as well as other relevant data. We include also some performance and load specific data.
When a seed node is not in the expected state it sends an alert/notification to the operator.
We have 2 monitor projects [1], [2] (as well a ping monitor used by @wiz) for monitoring seed nodes. But both do not provide the quality that it can be used for notifications as they produce too many false positives. Also those monitor projects request all the data causing heavy load for the seed nodes and the monitor itself, which is probably the main reason why they are not as stable as they should be.
Notifactions for real problems is the main goal we need to achieve.
It is alreay implemented in a basic form. See below the open tasks we want to add.
Current URL: http://46.101.179.224/
Source: https://github.com/chimp1984/bisq/tree/add-InventoryMonitor-module
Very low rate of false positives for notifications. It cannot be excluded that some alerts might be caused by not critical reasons due the nature of the data and uncertainties with blockchain related behaviour. See below at the data type and priority descriptions for more context.
I don't see any risk here. In the opposite the current monitors cause heavy load and with that risk for seed nodes. Once that project is completed we can shut down http://104.248.88.175 and maybe consider to remove the p2p data requests from https://monitor.bisq.network to reduce seed node load.
I will delay all my comp. requests until Bisq is more profitable, so from my side there is no budget needed.
@jmacxx : 500 USD (#45 (comment))
Instead of requesting the data and then check if all seeds deliver the expected data we add a new request message and the seeds tells us how many objects per data type they have (as well as some other data). This reduces load from 8 MB (we had to exclude the largest data as it would have been much more then) to a few kb. It also does not require that the monitor runs the full Bisq code base but only a tor node and only need to understand the messages which do not contain domain specific dependencies, so its very lightweight both for monitor and seeds.
Goal is to get a reliable monitor which can be used for alerting operators if a seed is not in the state it should be.
To achieve that we try to be lightweight and keep things as simple as possible. Flexibility to add new metric types is a goal as well. UI should provide a quick overview, so that with a quick look at it one can see if all is ok, or if there are issues with any seed.
With the https://monitor.bisq.network/ project that goal was never met as false positive rate and instability of the monitor made it impossible to use it for that purpose.
This project is not aiming to compete with feature richness and sophisticated UI of https://monitor.bisq.network. It is intended for devs and operators not for users, thought it is public and users can see it as well, but it is not a goal that it is user-friendly for people who are not familiar with the context.
Currently we write html data and provide it via a simple http server inside the monitor app (in java). Parallel we write json data for each response. The data are a hash map of string keys and string values to be flexible for future changes and updates. Type conversion from string to integer or long need to be done per key type. Flexibility is here preferred over type safety.
"requestStartTime": 1602948574936,
"responseTime": 1602948576319,
"inventory": {
"blindVoteHash": "3f3b46ecd254e6d3739f8ef76ca1b2e5db92dc19",
"BlindVotePayload": "316",
"proposalHash": "dad7456b93944c10f93325b1f78817a92d579ee9",
"usedMemory": "890",
"sentMessagesPerSec": "2.24",
"TempProposalPayload": "66",
"numConnections": "30",
"MailboxStoragePayload": "585",
"AccountAgeWitness": "64253",
"jvmStartTime": "1602932539817",
"TradeStatistics3": "76325",
"receivedMessagesPerSec": "12.86",
"numBsqBlocks": "81436",
"daoStateHash": "3fbc3417575aa125c191d69d4ee00b25910d44a2",
"RefundAgent": "1",
"Filter": "2",
"sentData": "639.861 MB",
"ProposalPayload": "514",
"receivedData": "939.049 MB",
"Mediator": "3",
"Alert": "1",
"OfferPayload": "437",
"SignedWitness": "4588",
"daoStateChainHeight": "653182"
Currently there are 7 seed nodes updated to provide those data and we request every 5 minutes.
blindVoteHash, proposalHash need to be the same for all seed nodes at the blocks when those get set (I need to look up when that is and it would be good to add those blocks to the hashmap).
daoStateHash needs to be the same for all seeds with the same block. Changes with each block.
If any of those data is not matching its a severe failure and the op need to be alerted.
Deviation of numBsqBlocks and daoStateChainHeight must be in low range. It is super rare that > 3 blocks are created in very short time. So I would suggest deviation of > 3 blocks is an alert. Still could be valid case but a look up in blockexplorers will resolve that for ops.
Mediator and RefundAgent must not be 0 (thought RefundAgent could be theoretically). If not its severe error.
Mediator and RefundAgent should be the same most of the time. Only when a mediator revokes or get added there might be a difference as some seeds might get it earier then others. Those events are vary rare.
Similar is true for Filter and Alert. They should be the same most of the time, just when new ones get published deviation is expected but even then rather rare.
ProposalPayload, BlindVotePayload and TempProposalPayload should be the same most of the time. Here its a bit more complex as after a certain block those data cannot be added anymore so that they are valid for the DAO, thought technically they can be added. I would suggest to accept low level of deviation (e.g. 10%) but should some color if the data is not the same as that is the 95% case.
SignedWitness, AccountAgeWitness, MailboxStoragePayload, TradeStatistics3: Those get added all the time but at a low pace. Deviations of < 10% are normal. > 30% should be considered as error.
OfferPayload gets added and removed all the time. If a big marketmaker goes online/offline it is expected that 100 offers or more are different. We have about 300-550 offers. As far I observed it is rare that deviation is > 100. I would suggest deviation < 10% is normal. 10 - 30% is light warning but still can be a valid case. 30 - 50% should get a severe warning but still no alert. > 50% should send alert to op.
jvmStartTime: seeds restart once a day: if that time > 1 day and 2 hours send alert.
usedMemory: So far 500MB - 1 GB seems to be normal. If > 1 GB send warning to op.
numConnections: depends on maxConnections set by op (we should prob. add the maxCon param, currenty they use 30 but they could use diff. values per seed). If numConnections > 2 x maxConnections send an alert.
sentMessagesPerSec, receivedMessagesPerSec, sentData, receivedData: Lets obsever a bit normal values and then add alerts if deviation gets larger as usual. Also recent changes in P2P network should lower receivedMessagesPerSec still to get as low as sentMessagesPerSec, might need a while until most users have updated.
[1] https://monitor.bisq.network/
[2] http://104.248.88.175/
This project was initially titled 'Bitcoin 2020' but has been renamed since the Bitcoin 2020 conference has been unexpectedly postponed.
Board: https://grow.bisq.cc/b/jPBBopYuLdGYdDpvF/markets
Bisq growth efforts in recent past have been relatively muted. Aside from documentation, resources to make using Bisq simple have been scarce.
This effort aims to encourage volume in USD, EUR, and XMR throughout the month of March, through a series of content to encourage beginners and lurkers/tire-kickers, bots to promote good offers, and new payment methods to make bigger trades more quickly and easily...capped off with Bitcoin 2020 at the end of the month.
In addition to more volume, the content created with this initiative should serve as a foundation for ongoing growth efforts after March 2020 (more on this below).
Metrics:
Content/Communications
Tools (experimental but relatively low-effort)
Payment Methods
Event
Only the magazine is slated to continue as planned...all other event preparations are postponed.
https://github.com/orgs/bisq-network/projects/17
Refer to the project board to track progress of issues and PRs.
The API Project’s scope includes exposing a Core API using gRPC, and serving a Linux / OSX based gRPC CLI and RESTful web clients.
The API should be able to perform all functions now provided by the Bisq desktop UI. The release process is incremental;
approved contributions to the API project will be merged into the main branch as work progresses.
The most important justification for a gRPC based API is scaling Bisq to increase trading volume and liquidity. This will be accomplished by supporting trading bots, enabling development of new RESTful HTTP clients, opening opportunities for Bisq integration into products such as myNode, facilitating automated functional testing (narrow and broad), and full end to end testing. Automated testing may also lead to faster improvements to mature, core components now in use by the UI.
As mentioned above, delivery of the API will be incremental, and small bits of the API have already been merged into the main branch.
Before code supporting this simplest trade use case can be merged into the main branch, security risks must be discovered, analyzed and mitigated.
Releasing a programmatic interface to the Bisq protocol presents opportunity and risk; risk analysis must be a priority for each phase of the development / test / release cycle as soon a the API supports any trading on mainnet.
The short, near term goal is to demonstrate the minimum, simplest API and gRPC CLI capable of performing all tasks required by a basic trading scenario: protecting a wallet, funding a wallet, creating a payment method, listing offers, creating & taking an offer, through completing the trade protocol and moving received funds to a Bisq wallet. After demonstrating this use case, feedback will be studied, bugs fixed, work on supporting more payment methods will begin, and decisions will be made about the next phase of development.
Some of the work to support the simplest trading use case have been merged into the main branch. Tasks lists used for planning and tracking this work are listed below.
Currently, an API Test Harness PR is in review. If approved and merged, some polishing will done on the test harness, test cases will be added, and work on the API itself will be restarted.
After the gRPC based CLI is stabilized, passes risk assessments, supports enough features, and is accepted by sufficient numbers of users, work will begin on supporting RESTful HTTP clients. The current plan is to use a go based reverse-proxy / grpc-gateway to transform HTTP 1.1 requests into HTTP 2 (gRPC), and back. (The scope of this project does not include building HTTP RESTful clients.)
Earlier discussions are in the comments here .
The earliest proof of concept was merged from PR 3888 .
This is a Bisq Network project. Please familiarize yourself with the project management process.
This is a project proposal to migrate Bisq pricenodes away from using the earn.com fee estimation API in favor of an open-source self-hosted mempool fee estimation API backend, that we can decentralize further by having all Bisq btcnode operators run.
Whenever the Bitcoin market sees major price action, trading volume suddenly spikes, which results in a huge rush of new transactions into the Bitcoin mempool, and "next block" fees rise very quickly:
This sudden rise in mempool fees causes a major issue in Bisq whereby any trades taken during the time when the mempool fees start to rise use far too low of a fee, and they do not get confirmed for several hours or even days later, until the mempool clears out. The cause of this issue is that Bisq currently uses Earn.com fee estimation API which is slow and not well maintained. The https://mempool.space backend uses realtime data from Bitcoin nodes, so it is extremely fast to return realtime fee estimates, compared to the Earn.com API which is always lagging behind:
This issue was first reported by @ManfredKarrer in bisq-network/bisq#1077 but at the time, a better mempool fee estimation API service did not exist. But now we have a great open-source and self-hosted solution, the mempool project. Of course I am bias, since I am a maintainer/contributor to this project, but IMO it really is the best mempool project for Bitcoin and we have worked very hard making it so.
Recently during the past few days we have seen this issue reproduce again, and now users are complaining in support that their deposit TX have still not confirmed even after waiting for 12 hours. So therefore I propose that we pull the trigger on ditching Earn.com API once and for all.
After all Bisq pricenodes upgrade to the new code that will query our federated btcnode mempool fee estimation backend service, we can consider it delivered.
After all Bisq nodes start receiving the self-hosted mempool fee data, and users no longer experience this issue due to sudden fee spikes, we can consider it a success.
I've been running the mempool backend and hosting https://mempool.space for over 6 months, and it has never crashed, so I feel it is quite stable to run in production. However, we could keep Earn.com API as a backup data source to mitigate the risk of any issues with our own self-hosted API service.
Dev: $2000 USD
Ops: $1000 USD
This is a Bisq Network project. Please familiarize yourself with the project management process.
@pedromvpg created a while back a great new design including new-user-onboarding:
https://xd.adobe.com/view/a83c2327-4730-4ec2-8938-e318b2749588-fd6f/ (not a finished version but should give a good impression)
For too long we did not manage to get that implemented. To boost that I contacted a few JavaFX experts to see if we can find a UI developer to get that done as well to have a long term committed dedicated UI expert in our team. I had a call now with a promising candidate and I would like to start an iterative process to get the work started. He is available from march on, so we should get our parts ready over the next weeks.
As the scope of the whole project is rather large and hard to estimate I cannot provide a meaningful estimation of costs.
It requires more discussion how we can manage and structure the work so that it meets the goal to get deliveries in an iterative process. My below suggestings are meant to get the ball rolling and any improvements are very welcome!
The UI developer is new to Bitcoin and the DAO model is a bit too new for him to feel comfortable with. To not make that a barrier I will offer to prefund his work so he will work as sub-contractor for myself and I will do the compensation requests for him (if anybody else want to play that role please get in touch). Mid/long term he should fade into the normal DAO contributor model. I also made clear that we are looking for a long term commitment and even if there might not be enough work for a fulltime UI developer that he stay committed for at least 10-20 hours so we can rely on a longterm UI/UX expert.
New users get a bit lost with the concept of Bisq and the involved complexity. To make it easier for new users @pedromvpg created a new-user-onboarding design where users are guided throught the first steps.
The larger redesign improves the look and feel of the app and improves also the trade related areas, so it should lead to be better user experience for traders.
By applying a new design we intend also to rewrite the UI code base, as that got too much technical debt over time. Also with the API we have a secondary "client" and some code should be moved our from the desktop module to a new presentation module which can be shared by the API code base.
We will approach an iterative delivery plan. Goal is to get short term deliveries (about 1 month) which can be rolled out. See below for more details.
Hard to measure as development of revenue has many factors including external ones (BTC bull market vs. bear market). We could make some survey to find out if users liked the changes.
There are several risks which should be limited by the iterative rollout plan. There is the risk of introducing new bugs and that the project gets stalled for whatever reason. Below I suggest some alternative paths in case the integration effort or code rewrite effort would be too high.
It is very hard to estimate but I think it wil be in the range of 30000 - 60000 USD. If we get to the higher limit we need to adjust our delivery plan (e.g. reduce scope of code re-write, disitribute some integration work to existing Bisq devs,...)
To limit risks I suggest following delivery plan.
From my experince FXML has some overhead specially for the XML parsing which leads to some noticable delay. If the UI dev has strong arguments for using FXML I would like to see a performance comparision using a test project where the same UI screens are implemented in FXML and in plain Java. If it turns out the performance difference is not critical we can use FXML otherwise not. There should be several views in a similar conext as used in Bisq (e.g. tabs) and some heavy content with different components to get some realistic simulation. I think parsing results are cached so difference might be visible only at first screen changes.
As stated this is optional if the UI dev prefers FXML to be sure to not suffer performance loss. If we decide against FXML I would prefer to get rid completely of FXML and not even use it for the base containers as it is used now.
As all the following work depends on that decision to use FXML or not we should do that in the very beginning.
This is a JavaFx standalone application implementing the design and styling (light and dark mode) with all user interactivity using mock data (random data similar to real Bisq data). There is no domain knowledge about Bisq and the Bisq code base needed. One open challenge is how we deal with the payment method screens. There are a lot of payment methods. An area which will need a bit more discussion how to deal with it.
Integrate the click dummy for new-user-onboarding into Bisq. Once integrated this will be released as the first user facing delivery.
Like above an independent app implementing the design in dark mode style (light mode is not included in first version but should be considered for later). The content area can be filled with placeholders.
Integrate the new menu structure and layout into Bisq. Reuse or create a new persistable navigation framework.
Apply all content into the new content container. This will likely require some adjustment as the available width will be smaller with the new design as the menu is on the left side. In case that some views cannot be adjusted without degrading usability too much we need to consider to implement those views with the new design as well. This package is a bit hard to estimate and delivery time will depend on the complexity and effort to get an acceptable solution without getting too far with implemting the new designs of the other content views.
Once an acceptable solution is implemented it gets rolled out in a release.
Same as above, independent design-only implementation. We should get a bit deeper here into user interaction and add the validation model as well. Currently we use a dynamic validation where on focus out the validation gets triggered. This has some issues as it is not always obvious to the user that focus out will re-evaluate validation state. Also there are quite some complexity in those views which lead to some weird behaviour/bugs. A more simple model would be to triggger validation only when clicking the action button. Has to be discussed and evaluated which validation concept we will use.
Integrate create-offer and take-offer views into Bisq. This will be one of the more challenging tasks as that area carries most of the more complex domain logic. It also requires to move much of the validation, formatting, calculation code to a new presentation module so it is available for re-use for API or potential other new applications (e.g. mobile?).
If a click dummy is needed for the remaining views can be decided later. Goal is to get one view completed and then move to the next one. At each release we include what is ready to get shipped. We should start with the views which the traders use most (wallet, portfolio, market,...). As the DAO is a kind of sub-application we can leave that to the end. Maybe the new design will find also a different solution to not include the DAO as main menue item but as something different (no concrete idea yet, but I think it is not perfect as it is now).
There are some other areas like loading screen, windows/popups, notifications,... which need to be considered as well.
With that iterative deployment plan we can limit the risks in case the project gets stalled for whatever reason to have at least part of our goal delivered. Alternatively if it turns out the effort for integration and/or effort for rewrite is too high we could limit the tasks for the UI dev to implementing the click dummies only and an existing Bisq dev who is already familiar with the code base can work on the integration. Code rewrite can be considered optional in that scenario as well (though it is a clear goal).
As the new UI dev is new to Bitcoin and to Bisq (as well as trading domain) we need some domain experts to guide the project.
It would be great if @pedromvpg and @ripcurlx can be a main lead for getting the UX right.
If @pazza83 would be available as trade domain expert would be great as well.
I can be available for dev related support and dev onboarding.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Implement segwit in bisq according the plan drafted in bisq-network/proposals#226
Bisq users keep asking for this feature. Segwit has been out for several years. A bitcoinj version with segwit support was released in March 2019.
As described in bisq-network/proposals#226, the goals are :
Why now?
Any combination of:
The biggest risk is migration. Bisq had problems in the past because of migrations that turned out to be a headache. e.g. the new trade protocol. The plan this time is to let already created offers and unfinished trades finish in peace after migration. Oscar Guindzberg committed to plan migration thoroughly and be available to provide after-migration support if needed. @chimp1984 is going to review Oscar's work.
Oscar Guindzberg is going to do all these tasks
The total estimate is USD 45000.
There are a couple of milestones:
The entire project will be implemented by Oscar Guindzberg.
See bisq-network/proposals#247
Some challenging parts of the project are:
Board: https://github.com/orgs/bisq-network/projects/8
This project defines a project management process for the Bisq DAO.
See also: https://bisq.wiki/Project_management#Purpose and https://bisq.wiki/Project_management#Philosophy
Many if not most of the things we set out to accomplish under the Bisq DAO are best thought of and managed as projects. There are exceptions, such as simple bug fixes or carrying out the regular duties of a given role, but most efforts we undertake require multiple tasks and multiple contributors across multiple teams in order to be properly delivered. Modeling what we do as projects captures this reality and allows us to better manage it.
Projects provide a suitable unit of abstraction for budget allocation. As we have rolled out budgeting over the last weeks (#2), it has become clear that it is difficult to effectively allocate budget on a task-by-task basis. A better approach is to define a project up front and to estimate a budget for that project that includes all known tasks and teams that will be involved.
Projects allow us to scale out and deliver on more efforts in parallel. The project management process is designed such that any contributor can own a project from proposal to implementation to completion. Such a project owner is responsible for every aspect of their project, including getting it approved, ensuring it stays on track and on-budget and reporting on it in a bi-weekly review. This of course does not mean that a project owner is responsible for doing all the work necessary to deliver the project, but rather that the owner is responsible for ensuring the work does get done. In this way, we avoid the pitfall of centralizing all management to team leads, and instead build a culture of effective self-management with appropriate checks and balances.
Projects allow us to course correct on and/or disengage from efforts that are under-performing. If a project is blowing its budget, is suffering from scope creep, or has an owner that has gone awol, a project may be re-scoped or dropped entirely, allocating its budget elsewhere. Such decisions are made as part of the bi-weekly review process.
Projects are related to, but distinct from Goals. Goals define high-level strategic outcomes for Bisq and the Bisq DAO as a whole (see the Bisq Q1 2020 Update for our current goals). Projects are the tactical means by which we achieve those goals.
Projects are related to, but distinct from Proposals. Proposals have become overused and in many cases, even when approved formally or informally, are effectively unimplementable or otherwise unmanageable because they do not define work and outcomes in enough detail. Going forward, proposals will continue to serve their function as a decision making mechanism within the DAO, but projects will be the favored approach to managing efforts that require tasks, resources and time to accomplish.
Projects have an important relationship to Processes. Processes such as proposals, compensation request reviews, DAO voting, role reporting, code reviews, and many others are activities that do not have a beginning and an end, but go on indefinitely and ultimately constitute the way things work in the Bisq DAO. In some cases, the outcome of a project will be to establish a new process. The project you are reading about right now is one such example.
See https://bisq.wiki/Project_management#Resources
See https://bisq.wiki/Project_management#Roles_and_teams
See https://bisq.wiki/Project_management#Process
See the project board at https://github.com/orgs/bisq-network/projects/8.
This project is purely administrative, and administrative activities are not subject for compensation at the current time, so there is no cost estimate. It does consume the time and effort of the project owner (@cbeams TBD), and of all those that help review and otherwise engage with the process proposed here, but these costs are considered to be integral to working within the dao, i.e. a cost of doing business.
During startup, Bisq is required to send >4MB of data to seednodes in order to get its initial data. This is an issue because
The primary goal of this project is to reduce the amount of data to be sent on startup.
On startup, a Bisq application first requests up-to-date network data from two seednodes. Once data comes in, the Bisq app jumps from the loading screen to the trading UI. However, if no data arrives, Bisq stays at the loading screen forever.
There are two main reasons why this happens:
The numbers below can be transformed to actual request size since each object is represented by a 20 Byte key in the initial outgoing data request basically saying "I already have that, please do not send it".
Version | Release date | SignedWitness | AccountAgeWitness | TradeStatistics2 | total | others | total diff |
---|---|---|---|---|---|---|---|
v0.9.1 | 2018-12-13 | 1057 | 21132 | 19490 | 41802 | 123 | |
v0.9.2 | 2019-01-08 | 1057 | 22056 | 21384 | 44620 | 123 | 2818 |
v0.9.5 | 2019-03-06 | 1057 | 24593 | 25212 | 50985 | 123 | 6365 |
v1.0.1 | 2019-04-16 | 1057 | 26550 | 27249 | 54979 | 123 | 3994 |
v1.1.1 | 2019-05-06 | 1057 | 27360 | 28585 | 57125 | 123 | 2146 |
v1.1.2 | 2019-06-04 | 1057 | 29437 | 30558 | 61196 | 144 | 4071 |
v1.1.3 | 2019-07-16 | 1057 | 32172 | 34344 | 67753 | 180 | 6557 |
v1.1.5 | 2019-08-08 | 1057 | 33664 | 36248 | 71149 | 180 | 3396 |
v1.1.7 | 2019-09-23 | 1057 | 36493 | 40273 | 77938 | 115 | 6789 |
v1.2.2 | 2019-11-01 | 1057 | 38665 | 42657 | 82494 | 115 | 4556 |
v1.2.3 | 2019-11-07 | 1171 | 39415 | 43009 | 83710 | 115 | 1216 |
v1.2.4 | 2019-12-05 | 1441 | 41114 | 45475 | 88145 | 115 | 4435 |
v1.2.5 | 2020-01-09 | 1693 | 43102 | 48049 | 92959 | 115 | 4814 |
v1.2.7 | 2020-02-13 | 1920 | 45204 | 51222 | 98461 | 115 | 5502 |
live | 2020-03-06 | 2123 | 46989 | 54322 | 103997 | 563 | 5536 |
By adding the info "I am Bisq v1.2.1" to the list of known objects, we know what objects the client has - namely, objects shipped with the data stores of v1.2.1.
Task | Amount [USD] |
---|---|
feasibility study | 600,00 |
proof-of-concept impl | 2400,00 |
production-ready | 2100,00 |
testing | 700,00 |
other | 500,00 |
total | 6300,00 |
This project is about migrating from Tor Hidden Services version 2 to Tor onion services version 3 and the required steps to do so.
The Onion Router (TOR) offers a version 3 of its hidden service technology (HSv3) for quite some time now. Bisq, until now, held onto HSv2 because the Tor devs themselves did not consider HSv3 as "BEST", at least until Tor v0.3.5.1. However, a tiny line of code prevented HSv3 to actually become the expected default back then, so we spent our time working on other Bisq issues. Now, motivated by an upcoming tor 0.4.2 and bisq-network/bisq#2873 it is time to seriously think about HSv3 and how Bisq can make a transition from HSv2 to HSv3.
Since Tor has officially deprecated Tor onion services v2 source we should prepare Bisq as well. Final deadline (v2 is no longer available) is 2021-07-15, although, we can delay adapting to new tor binaries and thus gain a few days, on the other hand, Tor will show warnings in upcoming releases (as soon as 2020-09-15, i.e. next week) and we do not know how good their v2 "DNS" servers will hold up. Finally, on 2021-10-15 there will be no v2 "DNS" servers anymore and thus, v2 onion addresses will not be accessible anymore.
Please note that compensation for the first three points should be available as soon as these tools make it into master. There is no point in delaying the compensation for a year. The tools necessary for executing the timeline may only be created according to the timeline.
The Get started guide is now complete. Feedback on it would be great. For the most part i've transcribed what was on docs.bisq.network and added or refined the information.
Most use cases are quick and to the point. The Take an offer use case is a tad longer but it is a more detailed use case and requires a longer walk through.
Please advise if this issue would be better off in a different location such as /wiki or /support
Project board: https://github.com/orgs/bisq-network/projects/10
This is a project proposal to create XMR/Fiat markets on Bisq using BTC as the security deposit.
I have documented this proposal following discussion of it on Busq's GitHub discussions: [#5285 ](Monero to fiat trades using BTC as the multi-sig #5285)
XMR/BTC is the most liquid market on Bisq. This market generates more revenue for Bisq than all of the other markets combined. Efforts are being made with atomic swaps that when/if implemented will make the future of this market, and the revenue generated from it, uncertain.
Being able to use Bisq for XMR/Fiat trades is overwhelming popular with Monero community. See my recent Reddit Post Would you like to be able to use Bisq to buy Monero directly with fiat?
The project is important for a number of reasons. These include:
There are currently no ways (at least that I know of) for people buy or sell Monero using fiat on a decentralized exchange and with no KYC requirements. Options seem to be centralized exchanges (eg Binance and Kraken) or centralized P2P exchanges such as Local Monero or AgoraDesk. These options require KYC.
On Monero community are also frequently asking about how to buy XMR using fiat and get referred to a centralized exchange such as Kraken or to a P2P marketplaces. Bisq gives great on and off ramps to BTC user, I think it could extend these on and off ramps to Monero users.
Allowing users to buy and sell in peer to peer on a decentralized exchange is core to the principles of Bisq. Enabling Monero to fiat trades on Bisq would be of a major benefit to the Monero community, It would be well used and would increase Bisq trading revenues.
When I started using Bisq I did so because of the great on / ramps for fiat it provides. It is fantastic for people looking to acquire some BTC in decentralized way without KYC. Bisq is still great for this use case. However the more the crypto landscape has changed (big increases in prices across the board), the more I think Fiat > BTC is not where Bisq will get most of it's revenue from in the future. I think the largest revenue and growth for Bisq can come from users trading one crypto for another. My project might be about Monero to fiat trades, but really to goal is for Bisq to strengthen its appeal and use case for another community other than Bitcoin. If this model is successful there would be no reason to use it as a way to onboard other crypto communities into Bisq. I feel like Monero is the best fit for Bisq due to it sharing Bisq's values in terms of privacy and also the high number of Monero users already on the platofrm.
I want to see Bisq succeed in growing its trading volume in BTC terms. I want it to grow it's revenue in BTC terms. If Bisq is reliant on being an on/off ramp for fiat, the increase in the price of Bitcoin is a threat to Bisq achieving this. The higher the prices the more risk there is, and the more users will run into bank imposed limits (both in terms of fiat volume and individual fiat transaction amounts). I see Bisq as needing to move into more markets to increase it's trade volume in BTC terms. The more markets it has the easier it is to generate revenue both as an on / off ramp for fiat and also the a place to go for decentralized. no KYC P2P crypto to crypto.
The speed of price increased in the crypto space is very fast and this is why I think that efforts should be made now to onboard more communities.
Bisq is currently has a great reputation in the Monero community and they are in need of a solution to buy and sell XMR with no KYC. Bisq should see this as an opportunity and capitalize on it.
If nothing is done to address the issues above than I worry that Bisq will be unable to realistically grow it's denominated BTC revenues relying on fiat trades alone. I make the assumption that growing Bisq in these terms is something the majority pf Bisq stakeholders want but I imagine there are a range of opinions on the philosophical goals for Bisq and whilst generating revenue and being self sustaining are important, their may be differing views on how important, or not, it is to grow in BTC terms.
My project proposal is to create XMR/fiat trade where BTC is used as the multi-sig.
I have chosen to keep BTC as the multi-sig for the following reasons:
Sellers of XMR would deposit 115% BTC to cover trade amount and security deposit. When trade complete seller would receive their full security deposit back.
Buyers of XMR would deposit 15% BTC to cover security deposit. When trade complete buyer would receive their full security deposit back.
Example for 10 XMR trade (€1,900)
Example for 10 XMR trade (€1,900)
At the end of the project Bisq users will be able to buy and sell Monero for fiat with no KYC on a decentralized exchange.
Success would be measured in terms of trade volume on the following markets:
There would likely be a risk to adding a new trade protocol for the 115% deposit. There would also likely be some work required to maintain this. I would defer to the devs for assessment of these risks.
Monero also likely brings with it more regulatory risks. I think I would be right in saying more countries have banned the trading of Monero than they have the trading of BTC. For example I think exchanges based in Australia had pressure placed upon them to remove the ability for users to purchase Monero. My view point, however, is the regulatory risks are not a reason for this to be avoided, in fact I think they are a reason to push forward. It reminds me of the poem First_they_came_...
I would be happy to do this alongside a dev. But if someone else wanted to project manage it I would be happy to defer to them. If the idea is approved in principle I would be happy to agree a fixed USD amount for completing all the aspects.
I am not sure what the dev budget would be.
This project is not for XMR to be added as base currency, but it is the logical next step should this project be successful. I have not been contributing long enough to have been involved in the previous Propose how to integrate Monero wallet into Bisq, Bisq Monero Wallet and the rejection of the proposal Bisq DAO Cycle 6: Results.
Therefore, I might be missing some of the history/information, and I don't know if my proposal is significantly different, or if things have changed.
I am making this proposal as I think that revenue from fiat to BTC on/off ramps revenues will likely decrease over the coming years and I for Bisq to succeed in the long term I see it as a place where more crypto to crypto exchanges can take place. I am also passionate about privacy, decentralization, open societies, and the ability to Bitcoin and other cryptos to help people achieve personal and financial freedom. I feel is this project where to implemented it would be of benefit to both the Bisq and Monero community.
This project is about migrating from Tor Hidden Services version 2 to Tor onion services version 3 and the required steps to do so.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Board: https://github.com/orgs/bisq-network/projects/16
Repay victims of the April 2020 security incident per the plan detailed in proposal bisq-network/proposals#209 (approved in Cycle 12).
The rationale is covered in the proposal linked above.
All victims have been repaid per the plan laid out in the proposal above and the follow-on proposals that nail down certain specifics. Once everything has been clearly decided, this section may be updated to reflect the exact plan.
n/a, completing this project is required. Risks of not doing so were assessed prior to the approval of the proposal linked above.
See the project board at https://github.com/orgs/bisq-network/projects/16
No estimates given as completing this project is not a budget-discretionary item.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Approved in bisq-network/proposals#163 and fixes bisq-network/bisq#1074
This project will remove the need for Bisq network to trust BitcoinAverage as a data oracle and provide fiat and altcoin prices, by implementing our own weighted average price index for fiat and altcoin prices calculated from querying 10 or more Bitcoin Exchange APIs directly.
Currently the Bisq Pricenode Operators all subscribe to expensive Bitcoin Average API subscription plans, which is a large recurring expense for the Ops team budget. It's a no-brainer to do this project financially, since we will no longer have to pay these recurring monthly expenses for API subscriptions, but much more importantly in terms of our goals to improve reliability and censorship-resistance, this project will remove a very centralized TTP and CPOF for Bisq by decentralizing the data sources. If BitcoinAverage were to suddenly ban Bisq, we would be in trouble.
When all the items in Part 1 below are completed, we can consider this project to have been delivered.
After we have shut down all Bisq Pricenodes using Bitcoin Average, and Bisq is running stable using the new decentralized providers, we can consider this project to be successful.
The new code could crash our Pricenodes.
The new code could calculate prices incorrectly.
The pricenodes might disagree on the price for a certain fiat or crypto asset, causing network issues.
More risks probably exist which we cannot know.
Dev: $5000
Ops: $3000
Board: https://github.com/orgs/bisq-network/projects/13
@bisq-network/team-leads and @bisq-network/compensation-maintainers, please read and respond to this asap, as it deals with the orderly processing of Cycle 10 compensation requests, thanks.
@bisq-network/dao
Proposal Submitted
as each proposal is submitted@bisq-network/dao
(https://github.com/orgs/bisq-network/teams/dao/discussions/4)Contributors who wish to request compensation for the current cycle should submit a compensation request GitHub issue no later than 1 week prior to the end of the current cycle proposal phase.
WIP (Work in Progress) compensation requests may be submitted with a [WIP]
prefix in the title, e.g. [WIP] For Cycle 10
.
When a contributor removes the [WIP]
prefix from a compensation request issue, they should also add a comment stating This issue is ready for team lead review
.
@bisq-network/compensation-maintainers should be watching the bisq-network/compensation repository, and upon being notified of a new compensation request issue, should add the issue as to the Compensation board, putting [WIP]
requests in the In Progress
column, and putting non-WIP requests in the In Review
column.
When a compensation request issue is transitioned to the In Review
column, @bisq-network/compensation-maintainers should also assign the appropriate team lead(s) to that issue. The compensation maintainer must actually look at the content of the request and determine which team lead or leads are responsible. A given compensation request may include dev and growth work, for example, and so both @ripcurlx and @m52go should be assigned to review. When in doubt, the compensation maintainer should simply post a comment in the compensation request issue asking which team leads are appropriate.
When a team lead is assigned to a compensation request issue, they should propmtly review it with regard to whether the work meets the definition of delivered, and whether it fits within the team budget. The team lead should add feedback and comments as a appropriate, and assign the contributor to the issue to indicate that they are expected to respond to the review.
When the review process is complete, i.e. all team lead feedback has been addressed, the team lead should (a) transition the issue to the Review Complete
column and (b) add a comment asking the contributor to submit their DAO proposal and to post the resulting TXID in a comment.
Once a compensation request has been transitioned to the Review Complete
column, the contributor is free to submit their request as a DAO proposal per the usual process. When complete, the contributor should add a comment that reads DAO proposal transaction ID: <txid>
.
When @bisq-network/compensation-maintainers or @bisq-network/team-leads see the DAO proposal transaction ID
comment, they should transition the issue to the Proposal Submitted
column.
Per the usual process, when the vote reveal phase is complete, @bisq-network/compensation-maintainers should close each proposal in the Proposal Submitted
column appropriately, indicating via comment and label whether the request was:approved
or was:rejected
.
When a team lead is assigned
When the above process has been completed, the Compensation board should be empty save for any new [WIP]
compensation requests for future cycles that may have come in during the process.
The process above assumes prompt action from both @bisq-network/compensation-maintainers and @bisq-network/team-leads with regard to responding to issue state changes, transitioning issues on the board appropriately, etc. If anyone has doubts about their ability to do this in a timely fashion (same-day), please speak up.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Prepare roll out of API for January or February release
API seems to be pretty complete now, so lets prepare the last steps for deployment.
API usage is sufficiently documented and announced. Protection tools are in place.
Users are using the API, no major problems.
@ghubstan
Can you add the protection mechanism which are in place from the API side and which are planned but not implemented yet? E.g. protect against endless loops,...
I will work on the app related protection tasks. I estimate 2000 USD.
@sqrrm , @ghubstan , @m52go Could you add your estimates as well?
@ghubstan @sqrrm @cbeams @ripcurlx @m52go @pazza83 Do you have any further input?
Edited some dev tasks...
Implement new-user-onboarding and new UI design as discussed in #47
Bisq is a P2P exchange that is accessed via a software client that while extremely functional has remained largely unchanged from a user interface and user experience perspective.
In order to increase the accessibility of Bisq for new and existing users the user interface and user experience should be redesigned.
The goals of the redesign should be to:
The UI designs, being done by @pedromvpg, have in a state nearing completion for a while, the barrier to implementing them was lack of UI developer resources. @chimp1984 has recently been in touch with a developer that is keen to get involved in a UI resign. Having a dev in place and most of the designs already complete means it is a good time to start a UI redesign.
The risks of not doing it now are that Bisq may struggle to have the UI developer resources at hand to implement the project.
The project is fairly large and will be implemented in the following stages:
A rough project plan can be seen here: https://docs.google.com/spreadsheets/d/1RvjngdWhKX8L47tLkEP9eiJjfSb-SyUWvHnDYZP5YcQ/edit#gid=1115838130
The first two aspects will be:
The reason for the above two being first is that they can be designed and implemented first without effecting the other aspects of the client.
Once the above have been successfully completed the project will move into redesigning the user interface of the following sections:
The current designs for the above by @pedromvpg can be seen here: https://xd.adobe.com/view/b01dfd7a-3f79-4744-8df9-08394d2ea1ea-e54e/grid/
The above sections will be more clearly outlined following completion of the intial stage.
It is expected that once the client has been redesigned it will be necessary to resign the home screen to pull in the necessary data to make trading on Bisq an effective, efficient and satisfying experience.
The final stage will be allow for a period of user review and feedback before implementing any changes.
The success of the project will be measured against the goals:
It is preferable to measure goals in objective terms. Goals that can be measured objectively include:
Where goals can not be measured objectively due anecdotal measurements will be used to assess the changes in:
Changing the way users interact with Bisq will not come without risks.
I will defer to the devs for risk in implementing a new UI.
Other risks to be considered are:
Risks of project being stalled / delivered incomplete. This will be mitigated by breaking the project into sections and ensuring that any work delivered can be picked up by another contributor.
Design is subjective, there is the risk, or reality, that not all users are going to prefer a new design. This risk will be mitigated by trying to involve users from the outset and giving users the opportunity to express their opinions and input on any new designs.
The estimates will be broken down into the various stages.
Each section will have confirmed costs from all contributors involved in the various stages.
The costs for the initial stage of Performance test FXML vs Plain Java will be confirmed by @ripcurlx and the new UI dev.
@chimp1984 previously put the cost for the whole project somewhere between $30-60k USD.
The new UI dev is new to Bitcoin and the DAO model.
@chimp1984 previously made the following offer:
To not make that a barrier I will offer to prefund his work so he will work as sub-contractor for myself and I will do the compensation requests for him (if anybody else want to play that role please get in touch). Mid/long term he should fade into the normal DAO contributor model. I also made clear that we are looking for a long term commitment and even if there might not be enough work for a fulltime UI developer that he stay committed for at least 10-20 hours so we can rely on a long-term UI/UX expert.
I have offered to pre fund the work of the UI dev so that the new UI can be completed. It is still to be confirmed how this will work exactly but I think in principle myself, the new UI dev and other contributors are happy with this model, although progressing to a DAO model for the long-term would be preferable.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Replace the very old BSQ Explorer codebase by adding support for BSQ into Mempool.Space, and replace our current BSQ Explorers with Mempool Nodes so Bisq gains an integrated BTC and BSQ Explorer with Mempool Fee Estimation API support.
When the BSQ Explorer Operators reach Rough Consensus that Mempool has implemented all the tasks below and can replace the BSQ Explorers entirely, we can consider the project to be delivered.
When all BSQ Explorer Operators migrate to using Mempool, the Bisq users are happy with the change, and the role of the BSQ Explorer Operator is eliminated saving us money each month, we can consider the project to be a success.
Not much risk, since Mempool explorer is quite stable, and we can always go back to the current BSQ Explorer code if a major issue arises that can't be immediately fixed for some reason. The only risk I can see is that some transactions are incorrectly displayed until all the bugs are worked out, which can be mitigated with lots of testing before migrating.
Dev: $3000
Ops: $1000
Mempool: https://mempool.space/
Mempool on GitHub: https://github.com/mempool/mempool
This is a Bisq Network project. Please familiarize yourself with the project management process.
We need to update our Java and JavaFX version to be able to fix critical memory and UX issues with the current Java(10)/JavaFX(11) version we are using. Also we need to move to a LTS java version to receive ongoing security updates.
After Oracle ripped out the javapackager (required to create binaries for macOS, Windows and Linux OSes), we got stuck with the last Java version still including the javapackager - Java 10. The support for Java 10 ended already in March 2018 which means we didn't receive security updates since that point of time. Issues regarding the situation we are in are stacking more and more up and we need to have a path to update to a LTS java version sooner than later. This was blocked for a long time by the lack of a javapackager replacement. It seems to be that the Packaging Tool is ready (resolved 2020-02-05) so it make sense to start the upgrade work now.
This project is delivered if Bisq can be built with a LTS Java version and the latest JavaFX version and it still is possible to build binaries for Linux (deb, rpm), Windows (exe) and macOS (dmg).
The efforts could increase exponentially, because of unknown obstacles (we did have this issues in the past already). This could slows down all other development if severe changes to the build pipeline are necessary. To mitigate this risks we should focus on the absolute minimum requirement for each milestone to find out about critical issues as early as possible.
It is hard to estimate as it is lots of investigation and try and error involved. But @cd2357 seems to be quite far already (see bisq-network/bisq#4242)
This is a Bisq Network project. Please familiarize yourself with the project management process.
The business logic of sending messages needs some love. During bisq-network/bisq#4047, it became apparent, that the logic might miss sending messages entirely. Main takeaways from the project:
IMO:
however,
hard to say, as the project will only show its true face once we are knee-deep into it.
Task | Amount [USD] |
---|---|
create test suit | 1800,00 |
message queue | 900,00 |
remove "external" scheduling | 1200,00 |
testing | 700,00 |
other | 500,00 |
total | 5100,00 |
This is a Bisq Network project. Please familiarize yourself with the project management process.
This project is about replacing the storage infrastructure with a real database we can query using SQL.
Until now, data stores have been persisted by serializing data to Protobuffer and then writing that to disk. Because of that and as the data stores grow, we see
This project is about replacing the storage infrastructure with a real database we can query using SQL.
Needs to be streamlined and fixed before growth is hugely successful.
Aside from that it will address the following issues in one way or the other
probably
probably more
if we do not do it, CPU, RAM and IO issues will grow until Bisq no longer works. If we delay it, the user experience is affected even more.
As always with changes in the P2P part, the risks are substantial.
Task | Amount [USD] |
---|---|
create test suit | 1900,00 |
select db technology | 200,00 |
proof-of-concept implementation | |
make production ready | |
testing | |
other | 500,00 |
total |
EDIT: adjusted the numbers by factoring in recent developments and difficulties.
followup to #25
This is a Bisq Network project. Please familiarize yourself with the project management process.
Reduce or in best case eliminate arbitrator cases (refund agent cases).
The v2 of the Bisq trade protocol was designed to handle a handful of arbitrator cases each month. Right now it is more like 1+ cases per day which is not sustainable and creates an unnecessary load on arbitrators.
This resulted in multiple proposals:
PRs:
It is required that we solve this problem one way or the other to reduce total trade time in case of arbitration and not to loose the arbitrator before an acceptable alternative is available.
This project has no estimates as it is more an epic story. The tasks or proposals that we agree on working will have estimates instead.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Implement a new menu based CLI installer for all types of headless Bisq nodes, with optional components and configuration set interactively.
Currently, we have the following one-command installation scripts:
with optional add-on components having their own installation scripts:
While these initial one-command installation scripts were successful at improving on the difficult installation processes for setting up each node instance type, there is a lot of duplicate code in these separate installation scripts, they are spread out over several repositories, and they are becoming difficult to maintain.
Additionally, now that we have a new mempool-based Bisq Explorer, the Bisq Explorer Operators need a quick and easy way of creating a new instance, which currently lacks an installer script and several operators are still running the old explorer.
Moreover, once the GRPC API project is completed, many users will want a quick and easy one-command installer to setup a headless Bisq node on their Raspberry Pi at home, possibly with their own Bisq Pricenode as well, since a subscription to Bitcoin Average is no longer required.
The new unified installer should be able to install any type of Bisq node from the list above, with any number of additional optional components, configured through a CLI menu interface.
By executing a single command similar to
curl -sSL https://bisq.network/installer | sudo bash
any user should be able to install a headless Bisq instance, which could in theory then later be used with the future bisq-cli
interface to perform features via GRPC API, serve as a seednode, etc. etc. etc.
When all the existing one-command installation scripts have been replaced, all types of headless Bisq nodes can be installed easily with the installer, and all optional components easily added, the project can be considered a success.
The new installer might be so awesome, that Bitcoin and Bisq takes over the world and nation states cease to exist, transforming the world into a new age of peace and prosperity.
TBD
$3000
In order to make more informed decisions in the field of growth efforts, we have to better understand our markets. @m52go came up with the idea that we need to understand why a particularly good day (in terms of trading volume) happened, so that we may learn to tweak the environment to make such a "good day" more likely. Understanding a bygone offer book seems like a good place to start. However, memorizing the whole offer book is impractical and a potential privacy leak.
Thus, we agreed on 3 additional data histogram streams (for each market) to be included on https://monitor.bisq.network/ (based on this):
These data also allows for statements like
Note that these metrics are designed to give a quick idea on how the offer books looked like. The data is no simple statistical data stream providing averages, extrema or percentiles, instead, we use data binning. Here is an example graph showing "trader distribution by offers":
additionally, we know that the top trader has 12 offers.
data series index | offers per trader | textual description |
---|---|---|
0 | 1, 2 (0-2.4) | traders which have less than 20% offers active than the top trader has by count |
1 | 3, 4 (2.4-4.8) | traders which have between 20% and 40% offers active then the top trader has by count |
2 | 5, 6, 7 (4.8-7.2) | traders, 40-60% |
3 | 8, 9 (7.2-9.6) | traders, 60-80% |
4 | 10, 11, 12 (9.6-12) | top 20% of traders, by offer count |
The data of the 4 time stamps in the graph above are crafted for demonstration purposes:
If these metrics turn out to be useful, we can think of creating the same set of data streams for trades.
Make the data visible as graphs on https://monitor.bisq.network/.
USD 750,00 as already stated
This is a Bisq Network project. Please familiarize yourself with the project management process.
In the absence of a truly-improved onboarding wizard, we can improve and add text throughout the software to make Bisq easier to use.
I think this initiative is different from #12 because it has more to do with in-the-moment usage of the software, which is distinct from onboarding (thoughts welcome if I'm wrong about this).
There is lots of documentation and videos now on the wiki and YouTube, but most users don't ever read or watch it. This leads to rough onboarding, confusion, more support questions, and in extreme cases—abandonment.
A list of improvements will be suggested, and this project can be considered delivered when those improvements are implemented in the software.
We should see reduced support queries for simple common items like how to back up data directories, etc. Otherwise I'm not sure which metrics to track to measure success...we could do a sample set of user-testing before and after, but I'm not sure it's worth the time.
I seek to address issues and pain points that we see repeatedly throughout social and support channels, so the problems are worth solving by definition.
No risks. This effort requires mostly string changes.
100 USD for surveying and determining pain points
300 USD maximum for string changes (displayStrings.properties file)
Budget for software changes is for developers to decide, but should not be significant
None.
Citing essential data points and KPIs for desktop client from issue above
Data points to collect within a give timeframe per app version:
- Number of active nodes (nodes that are part of the network)
- Number of available offers
- Number of trades
KPIs needed:
- Ratio between
Number of available offers
andNumber of active nodes
- Ratio between
Number of trades
andNumber of available offers
If we don't have a baseline and metrics in place to measure our success we'll never be able to tell if some change was a success or a big failure.
As we don't want to include general tracking within the client, which would hurt user privacy, we'll monitor public available information and try to generate as-good-as-it-gets metrics out of it.
Our most important use case is to enable users to buy/sell BTC. Following KPIs help us to measure our success:
Number of active nodes
> Number of available offers
Number of available offers
/Number of nodes
stays roughly the same we can assume that the conversion increase is either by better user targeting in our growth efforts or by improvements within the client.Number of available offers
> Number of trades
Within https://monitor.bisq.network/ it should be possible to select a time frame and app version (or all app versions) and display the KPIs above.
Within https://monitor.bisq.network/ it should be possible to select a time frame to show the version spread between active nodes
here is the tasks list
Based on the numbers posted in bisq-network/bisq#3916 this project will need roughly USD 2200 to deliver this project.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Currently, in order to determine how funds were allocated in a particular cycle, compensation requests must be manually analyzed and aggregated. This is time-consuming and error-prone.
This mini-project seeks to establish and implement a new structure for compensation requests that can be parsed by a script.
The project reorganization implemented in Cycle 10 established a budgeting structure with team leads. This has helped the project look forward and plan how resources should be allocated. But planning is useless if one cannot look backward and evaluate results.
This project should result in:
The existing compensation request template and wiki documentation will need to be updated to reflect the new requirements, along with announcements in all major Keybase channels to ensure contributors are aware (#compensation, #dev, #chinese, #transifex, etc).
The project will be complete when the items above are complete: linter, parser, and related communications.
Contributors must make correctly-formed compensation requests on their own (this will demonstrate awareness of the initiative). The linter must alert compensation request makers of mistakes. The parser must make comments on approved compensation request issue with issuence numbers broken down by team.
The project can be considered a success if team leads actually use the issuance numbers provided by the parser bot for budgeting and tracking issuance over time.
Not applicable as no Bisq code is touched.
The most significant risk is probably a bot that reports incorrect numbers for some reason, but such a mistake should be discovered quickly and only impacts reporting (not issuance or software or anything else).
I don't think this project is complex enough to warrant a whole GitHub board, so here's a checklist.
Since this is largely a reporting initiative, it probably makes most sense to come out of the growth budget. Ongoing server costs should come from ops.
Maybe 1500 USD is sufficient for the whole project, as described above (initial implementation and documentation)? This is based on it taking a day to create the bots. Ongoing costs for the bots should be very low/negligible. Open to feedback if it any of this is off.
Tracking issuance in a more automated way is the first step of a bigger drive to report issuance, burn, and trading volume better.
Compensation request details are an important first step to enabling other reporting, so a new project can be created to pursue further reporting once this project has been successfully completed.
Board: https://github.com/orgs/bisq-network/projects/11
This is a proposal for introducing an explicit Java interface between Bisq and BitcoinJ, with the purpose of improving maintainability of our Bitcoin network code.
Our Bitcoin network code is very difficult to maintain, which threatens reliability and blocks some features (SegWit). This would improve maintainability and be a stepping stone towards SegWit.
While our BitcoinJ fork is old, upstream BitcoinJ itself is widely regarded as outdated. It is possible that in the future we will want to make drastic changes, like switching Bitcoin clients. Reducing coupling between Bisq and BitcoinJ would improve our flexibility when making those kinds of changes.
Our BitcoinJ code is not being audited (much less improved), because it is difficult to understand. The sooner we resume taking care of this code the better. At this time, reacting to a BitcoinJ vulnerability (salt over shoulder) would be very awkward.
Delaying work on our Bitcoin network code is also delaying SegWit.
Bisq is currently tightly coupled with BitcoinJ, and our usage of it, being scattered throughout the rest of the code, is difficult to audit and to maintain. Abstracting our usage of BitcoinJ into an explicit interface would facilitate audits, maintenance of Bisq, maintenance of our BitcoinJ fork, and general comprehension of Bisq's internals.
BitcoinJ is a Bitcoin network client that is used by and tightly coupled with Bisq. Maintaining the BitcoinJ part of our codebase has proven challenging. Notable illustrations being that we're using a two year-old release of BitcoinJ (0.14.7, Mar 30, 2018) and that we have a dedicated role for its maintenance (which has not been filled since May, 2019).
Among other things, returning to beIng able to maintain our BitcoinJ fork (and thus being able to upgrade it) will allow us to support SegWit/Bech32 addresses, which is an often asked for feature.
Our BitcoinJ fork's maintenance involves understanding how we use BitcoinJ, which is made difficult by tight coupling. To illustrate what is meant by tight coupling here is the long list of unique BitcoinJ imports we use in Bisq (excluding tests, minor formatting added):
grep -r --include=\*\.java -E "import( static)* org.bitcoinj" ./*/src/main -h | sort -u
Output moved to pastebin.com for the sake of readability:
https://pastebin.com/raw/Jd0nA6Nk
And, below is the even longer list of (non-test) source files that import BitcoinJ classes (with minor formatting added):
grep -r --include=\*\.java -E "import( static)* org.bitcoinj" ./*/src/main -l | sort -u
Output moved to pastebin.com for the sake of readability:
https://pastebin.com/raw/Ap0wf3Pd
To maintain our BitcoinJ fork you'd have to make at least some kind of sense of the above usages of it, which is (I think evidently) intimidating and difficult. The primary way that the proposed interface would help is by structuring our Bisq usage.
The proposed interface would aim to hide the bulk of BitcoinJ specific logic and to centralize essential Bisq Bitcoin network logic.
BitcoinJ imports can be put into two categories: essential and auxiliary. I define auxiliary imports as those that serve to handle output from and pass input to the essential imports. The essential imports (such as Wallet
, PeerGroup
, BlockStore
, net.discovery
) are the exclusive focus of this refactor effort, in part due to the sheer number of aux imports, and, at the same time, because hiding essential imports behind an interface should be enough to see an appreciable improvement in maintainability.
In other words, the proposed interface would not hide all of the above listed imports, but only the most important ones. This also means that this wouldn't be a complete decoupling of BitcoinJ, though it would pave the way for one, if it were to ever happen.
Our Bitcoin network code is one of the most sensitive areas of Bisq; however, the risk of introducing bad changes should be minimal since this is a refactoring effort (meaning rearranging code without changing algorithms).
This refactor effort is exploratory by nature, so making a precise plan is not possible ahead of time. Currently the plan is to analyse BitcoinJ usage and abstract it away behind the new interface, in order of descending importance, until only the least critical BitcoinJ code is left.
Budget not yet discussed.
Currently Bisq does not support sending funds from its wallet to external SegWit / Bech32 addresses. Being able to do so is amongst Bisq's most requested features. See detailed comment thread at bisq-network/bisq#1139.
This is a Bisq Network project. Please familiarize yourself with the project management process.
The support and mediation provided by the Bisq contributors has a lot of room to improve. The goal of this project is to come up with ways to create standards and resources that the contributors and traders can refer to and use for better experience.
It's important we have an agreed upon set of solutions, standards and responses that all support agents and mediators can refer to so that suggestions don't change drastically from person to person and from case to case.
None
Not defined.
Board: https://github.com/orgs/bisq-network/projects/14
Introduce a MediaWiki instance at https://bisq.wiki, initially for the purpose of a Bisq support knowledge base, but eventually to replace docs.bisq.network.
This project is Phase 1: standing up and effectively rolling out the wiki
Transcribing and potentially decommissioning docs.bisq.network is Phase 2 and will be managed as a separate, follow-on project.
Why a wiki: ease of use, quick access, no technical / process barriers. Review after-the-fact, not before. Our current docs infrastructure is great, but has a high barrier to participation. This wiki will be open to the public / community. Inspiration: the Bitcoin wiki at https://en.bitcoin.it.
Why Mediawiki: most capable, most widely known and used, open source, same as used by the Bitcoin wiki, so familiar for the community.
@bisq-network/support-agents
are referencing KB articles in support cases as appropriate, editing and writing new KB articles as appropriate. (How do we measure this?)@bisq-network/dao
contributors have created a login and made editsTasks are managed on the project board at https://github.com/orgs/bisq-network/projects/14.
This is a Bisq Network project. Please familiarize yourself with the project management process.
Following from the success of #37, this project expands the Bisq Explorer backend to serve the Markets API endpoints, and implements a new Bisq Market website frontend to show market data and vital non-technical performance metrics for the Bisq network on 1 screen through a combination of graphs, tables, and text so that users and BSQ stakeholders can easily get a pulse of network activity and health.
The current Bisq Markets API is again having major issues. Despite running on very powerful hardware, the API is overloaded because of the inefficient PHP architecture which doesn’t use a database and re-parses over 50MB of JSON data for each and every request. The Bisq Explorer backend is written in NodeJS and keeps all Bisq data indexed in RAM for fast serving of API requests.
The current bisq.network/markets
website is slow and outdated, has old assets that are no longer traded, the graph and pull-down search have various issues, and the data does not update in realtime. The angular frontend architecture that Bisq Explorer uses is very fast and modern and is updated in realtime.
The current bisq.network/stats
graphs are currently updated by a human at the end of each cycle. The growth team wants to enhance the bisq.network/stats
with full Markets and DAO metrics, updated in realtime, with information about all trade events and how the trade volume goes into Bisq trading revenue DAO expenses, issuance, burning, etc.
markets.bisq.network
to bisq.markets
hostnamebisq.markets
that displays updated Markets data and graphs updated in realtimeWhen the following are achieved, we can consider this project to be a success:
bisq.markets
bisq.network
website is using the new markets widgetsThe Markets API must be re-implemented exactly as it currently works, so existing integrations do not break. Current documentation is listed at https://markets.bisq.network/api
The legacy hostnames that serve the Bisq Markets API include market.bitsquare.io
, market.bisq.io,
markets.bisq.network, and others. These must be redirected to the new API hostname on
bisq.markets`
Ops: $5000 USD for Milestone 1 for Bisq Markets API
Growth: $2500 USD for Milestone 2 for Bisq Markets Website part 1, $2500 USD for Milestone 3
This is a Bisq Network project. Please familiarize yourself with the project management process.
Design a plan for migrating to bitcoinj 0.15 and using segwit in bisq. Implementation is not part of this project.
Benefits of using segwit:
A design/plan project is created because there are options to evaluate, decisions to make and it would be very hard to estimate implementation before design/plan is done.
4000 USD
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.