DXS Docs and FAQs
LoginRegisterTrade
  • ❓Introduction
  • TRADING
    • 📉Trading Basics
    • 💹Trade Examples
    • ⬆️Order Types
    • 💱Prices, Spreads, Slippage
    • 🔢Trade Sizes
    • ❗Account Limits
    • ⏱️Holding Fee
    • 🚰Liquidity Fee
    • 🔪"Scalping" Limits
    • ✂️Profit Deduction
    • 🛠️Troubleshooting
  • LIQUIDITY
    • 💧Liquidity Pool
    • 💰Providing Liquidity
  • TECHNICAL EXPLAINERS
    • Fiorin Wallet and Bridge FAQ
    • Consigliere Solves All Our Problems
    • How DXS Talks to the Blockchain
    • HandCash / Tokenized Consideration
    • Consigliere
    • How Liquidations Work on DXS
    • STAS Protocol Consideration
    • Fiat Denomination of Trading Positions
    • Liquidity Backed Stablecoin Proposal
  • BLOG POSTS
    • Fully Recover Any BSV Wallet
    • Get Paid Every Day of the Year
    • The End of TDXP?
    • More Profits With Zero Slippage
    • One Cent Positions on DXS
    • DXS Wants You to Win
    • Trade Straight From Your Wallet
    • DXS Is an Open Book
    • Current Risk Indicator
    • Yield on DXS
  • Policies
    • 📑Terms and Conditions
    • ⚠️Risk Statement
    • ⛔Anti Money Laundering Policy
    • 🚷Prohibited Persons Policy
    • 📝Liquidity Provider Agreement
    • 🔏Privacy Policy
    • 🍪Cookie Policy
    • 📑CET Terms and Conditions
  • Additional Resources
    • Twitter
    • Telegram
    • Medium
    • LinkedIn
    • Instagram
    • YouTube
    • Google Play
Powered by GitBook
On this page
  • We use Consigliere
  • What were the bottlenecks?
  • Checking the mempool for a TXID
  • Retrieving UTXOs for a particular address
  • Broadcasting transactions
  • I want to use Consigliere for my application!
  • I’m Taal or GorillaPool and I want to do better
  • I’m Tokenized
  • I’m HandCash and I don’t run a node
  1. TECHNICAL EXPLAINERS

Consigliere Solves All Our Problems

We use Consigliere to remove performance bottlenecks relating to how we talk to the blockchain

PreviousFiorin Wallet and Bridge FAQNextHow DXS Talks to the Blockchain

Last updated 2 years ago

10 weeks ago the DXS roared to life. Volume on DXS went 20x overnight. Shortly thereafter the platform shat the bed.

What happened?!

We bumped into bottlenecks, all of which relate to how we talk to the blockchain.

We have resolved all of these bottlenecks because we want to win. We’ll tell you how we did this because we want you to win too.

We use Consigliere

We need Consigliere for 3 reasons:

  1. We need more performance. 3rd party blockchain indexing APIs have proven to be too slow and unreliable. We cannot afford to be held back when seeking 100x, 1,000x growth

  2. We need more independence. We want the option to run an open source blockchain indexing solution in-house (to eliminate downtime and risk of vendor lock-in)

What were the bottlenecks?

Checking the mempool for a TXID

If a TXID exists in a miner’s mempool we have high confidence that:

  1. TX will eventually be mined into the longest chain

“Bro, just implement P2P TX and Transaction Ancestors (SPV Envelope) as outlined by Dr Craig S Wright and documented by the BSV Technical Standards Committee then you won’t need to run this check, bro”

How did DXS check the mempool before Consigliere?

Key issues:

  1. Due to being inconsistent with the blockchain (or down), WOC gave us issues we had to manually resolve every second day on average

Solution

Retrieving UTXOs for a particular address

DXS needs to do this every time we make a payment in order to build transactions that:

  • Return margins

  • Return profits

How did DXS retrieve UTXOs for a particular address before Consigliere?

We experienced the same three issues as with checking the mempool (above). These issues were exacerbated by the fact that when we ask an API endpoint for UTXOs, these APIs don’t support filtering or pagination. They will simply return all UTXOs for an address (unnecessarily large response).

“Bro, just keep an internal database of all UTXOs for the addresses you care about, you won’t double spend yourself, bro”

That might seem intuitive on the face of it but it’s much better to generalize this problem down to the root. Once you do this, you can reduce your interaction with the blockchain down to a few standardized API endpoints provided by an independent service. Very valuable if the underlying network (BSV) scales to the point that only miners can afford to run such a service, bro.

Solution

Broadcasting transactions

Once again, similar issues as above. Yes, I know we’re getting repetitive, stick with me.

“Bro, just use MAPI, bro”

Solution

Bonus. You’ve already done your mempool check by default. Your UTXO DB is updated by default.

Bonus. 100ms response times, massively concurrent, zero downtime (so far), inexpensive.

I want to use Consigliere for my application!

I’m Taal or GorillaPool and I want to do better

Run Consigliere and provide it as a service to your customers! Consigliere would be expensive for us to run in-house if BSV throughput grows 100x, 1,000x.

I’m Tokenized

You can easily extend Consigliere to index Tokenized transactions.

I’m HandCash and I don’t run a node

You deserve more reliable 3rd party blockchain infrastructure. Encourage your providers to run Consigliere.

is primarily an incredibly powerful BSV indexer (secondarily it is a transaction building SDK). Importantly, Consigliere can index, build and interpret transactions.

We need STAS. Tooling needs to support STAS to power wallet and USD trading on DXS

You should definitely read ‘’. From that, you’ll understand that DXS needs to perform three key functions (extremely frequently). These three functions are checking the mempool for a TXID, retrieving UTXOs for particular addresses and broadcasting transactions.

TXID is immediately retrievable on an independent service such as (a user can verify their trade details independent of DXS)

We run this check every time DXS receives a transaction from an integrated Web3 Wallet (again, reading will serve you well).

Bro, I literally proposed the that DXS and every wallet on BSV are not using! The practicalities of doing business on BSV have enforced different ways-of-working.

We have used , and (WOC) APIs at different points in the past. Most recently we have been relying completely on WOC.

WOC average response time was too slow (even 2 seconds is a deal-breaker for us). We typically bumped into this issue at the end of when we settle profits for 100s / 1,000s of profitable trades

WOC do some request throttling (by default they allow 3 requests / second) which caused problems for us upon the release of

Use . 100ms response times, massively concurrent, zero downtime (so far), inexpensive.

Return

Pay

Pay between wallets

Open trades on the behalf of a user ()

We have used , and (WOC) APIs at different points in the past. Most recently we have been relying completely on WOC.

Use . 100ms response times, supports filtering / pagination, massively concurrent, zero downtime (so far), inexpensive.

We have used , and (WOC) APIs at different points in the past. Most recently we have been relying completely on WOC.

I would suggest a consultation with () before going full MAPI, bro:

Use . Consigliere is connected to a pruned BSV node. Just put the transaction straight into the mempool. Job done.

Excellent. If you want to run Consigliere in-house, the code will be open source very soon. If you’d prefer to outsource your blockchain interactions, get in touch with to make it happen.

Consigliere
STAS
Fiorin
How DXS Talks to the Blockchain
Whatsonchain
this post
standard
Mattercloud
Blockchair
Whatsonchain
trading sessions
Bounty Trading
Consigliere
liquidity contributions
liquidity providers
hot and cold
Bounty Trades
Mattercloud
Blockchair
Whatsonchain
Consigliere
Mattercloud
Blockchair
Whatsonchain
Ivan Mlinaric
HandCash
Consigliere
this guy
growth engine
7 day MAPI response rates (Twitter link above)