Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
5f78e16
Intro tweaks (remove duplicate 'distinct')
danielnordh Sep 13, 2021
44847e5
CLI changes
danielnordh Sep 13, 2021
072642a
Explorer changes
danielnordh Sep 13, 2021
0f21771
Wallets changes
danielnordh Sep 13, 2021
96d29c8
Payment processors typo
danielnordh Sep 13, 2021
643a1ac
Exchanges changes
danielnordh Sep 13, 2021
1e87310
Node changes
danielnordh Sep 13, 2021
b8add3d
Mining changes
danielnordh Sep 13, 2021
ef064ff
Update illustration source link
danielnordh Sep 13, 2021
31d3051
Update wallet and payment processor images
danielnordh Sep 13, 2021
6aa4a26
Replace Explorer image
danielnordh Sep 13, 2021
020be23
Make Explorer image full width instead of inline-right
danielnordh Sep 13, 2021
8b8bc31
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
f19b74f
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
e048c93
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
ccc8a00
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
5d1af03
Re-order topics from most used to least common.
danielnordh Sep 14, 2021
dbe7e19
Remove unnecessary reference to CLIs in Wallets
danielnordh Sep 14, 2021
3eee5dd
Move info about developing wallets to the end of section.
danielnordh Sep 14, 2021
fe004ec
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
bd82a22
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
652891e
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
919a32d
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
da2f5e4
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
dcc0bc6
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
97531bd
Remove sentence about Bitcoin mining.
danielnordh Sep 14, 2021
f593a43
Separate paragraph about node management software from Lightning node…
danielnordh Sep 14, 2021
92c845f
Update guide/getting-started/software.md
danielnordh Sep 14, 2021
866a156
Add back shorter mining explanation.
danielnordh Sep 14, 2021
f043d54
Simplify Bitcoin node text.
danielnordh Sep 14, 2021
e7b49c3
Update Explorers image
danielnordh Sep 14, 2021
08d4e13
Fix Exchange image alignment with text and tweak text.
danielnordh Sep 15, 2021
ab96e25
Update guide/getting-started/software.md
danielnordh Sep 17, 2021
bdd9c6e
Update guide/getting-started/software.md
danielnordh Sep 17, 2021
0d53268
Update guide/getting-started/software.md
danielnordh Sep 17, 2021
dad4425
Update guide/getting-started/software.md
danielnordh Sep 17, 2021
1899025
Update guide/getting-started/software.md
danielnordh Sep 17, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/guide/getting-started/software/wallet-example.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
124 changes: 64 additions & 60 deletions guide/getting-started/software.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ could be to create sub-pages for each category to discusss it in more detail.

Illustration sources

- https://www.figma.com/file/VB3GQdAnhl8yta44DY3PSV/Bitcoin-Wallet-UI-Kit?node-id=148%3A174
- https://www.figma.com/file/JxAYVV6pkXLvh60I62RQ6o/BDG-Software-overview-illustrations?node-id=1%3A2

-->

Expand All @@ -36,66 +36,72 @@ Illustration sources

# Software overview

The unique history and architecture of Bitcoin has resulted in a few distinct categories of software, with each one serving a distinct purpose. Provided below is an overview of standard and specialized application categories.
The unique history and architecture of Bitcoin has resulted in several categories of software, with each one serving a distinct purpose. Provided below is an overview of standard and specialized application categories.

## Command-line interfaces (CLI)

Primarily used by developers, Bitcoin CLIs offer feature-rich ways to interact with Bitcoin. They can be thought of as general-purpose toolboxes, so they require certain technical knowledge and are not optimized for specific use cases. New features are often first included in a CLI and then later added to graphical user interfaces (GUI).

{% include image.html
image = "/assets/images/guide/getting-started/software/cli-example.jpg"
retina = "/assets/images/guide/getting-started/software/cli-example@2x.jpg"
alt-text = "Illustrative interface of a command-line interaction"
caption = 'Command line interfaces are text-only. Texture by [Joel Filipe](https://unsplash.com/@joelfilip){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
width = 800
height = 350
%}

## Block explorers
## Wallets

<div class="center" markdown="1">

{% include image.html
image = "/assets/images/guide/getting-started/software/explorer-example.jpg"
retina = "/assets/images/guide/getting-started/software/explorer-example@2x.jpg"
alt-text = "Illustrative interface for block explorer software"
caption = 'Block explorer offer insight into activiy on the bitcoin network. Texture by [Mike van den Bos](https://unsplash.com/@mike_van_den_bos){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
image = "/assets/images/guide/getting-started/software/wallet-example.jpg"
retina = "/assets/images/guide/getting-started/software/wallet-example@2x.jpg"
alt-text = "Illustrative interface of a wallet application"
caption = "Wallets allow users to send, receive, and manage transactions."
width = 400
height = 388
height = 396
layout = "float-right-desktop"
%}

If blockchain is a public database, block explorers are simply windows into that database. They let users view data about specific transactions, latest blocks, block height, and so on.
Wallets are perhaps the most important Bitcoin applications. They provide easy-to-use graphical user interfaces (GUIs) designed for broad audiences that let bitcoin owners send, receive, store and manage their coins.

Wallet features vary by application but always include wallet setup, balance and transaction records, and the ability to send and receive bitcoin. The full range of features that wallets may support is broad and includes security and privacy options, currency exchange features, accounting tools, interoperability, accessibility, and localization options.

Explorers also provide insight into bigger picture activity on the Bitcoin network, such as daily transaction numbers. For example, there are typically fewer transactions on weekends, which results in lower fees, which are ideal for low-priority transactions.
Few wallets support the full range of features. The reasons for this can vary from; standards not being available when the wallet was first developed (newer address formats or HD wallets for example), the choice to not include anything that implies trusting a third party, or simply because it does not fit the intended use case for the software.
The features you include should be based on the needs of your users. Try to maximize interoperability with other Bitcoin products by supporting modern standards and emerging technologies. For example, a wallet project started today should almost certainly support the Lightning network.

Due to Bitcoin’s open-source nature, anyone with the technical skills can develop a Bitcoin wallet. Many code libraries are available to simplify this task.

</div>

## Wallets
## Exchanges

<div class="center" markdown="1">

Exchanges let users swap between currencies and networks (for example USD to bitcoin, or from the base layer to the Lightning network. They typically fall in three general categories. Consumer-focused exchanges let users make trades directly with the exchange. This is ideal for occasional use.


{% include image.html
image = "/assets/images/guide/getting-started/software/wallet-example.jpg"
retina = "/assets/images/guide/getting-started/software/wallet-example@2x.jpg"
alt-text = "Illustrative interface of a wallet application"
caption = "Wallet allow users to send, receive, and manage transactions."
image = "/assets/images/guide/getting-started/software/exchange-example.jpg"
retina = "/assets/images/guide/getting-started/software/exchange-example@2x.jpg"
alt-text = "Illustrative interface for exchanging bitcoin"
caption = 'Exchanges allow for trading between different currencies. Texture by [Bilal O.](https://unsplash.com/@lightcircle){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
width = 400
height = 396
height = 388
layout = "float-right-desktop"
%}

Wallets are perhaps the most important Bitcoin applications. They provide easy-to-use graphical user interfaces (GUIs) designed for broad audiences that let bitcoin owners send, receive, store and manage their coins. Wallet GUIs don’t offer the full functionality of a CLI but instead focus on general use cases like making payments and browsing transactions.
Exchanges focused on investors and traders usually list many different cryptocurrencies. They allow users to trade with each other by submitting buy and sell requests on currency pairs. These products are generally for experienced users. They offer complex trading features and countless ways to analyze price movements.

Due to Bitcoin’s open-source nature, anyone with the technical skills can develop a Bitcoin wallet. Many code libraries are available to simplify this task.
Decentralized exchanges fall in between these categories, focusing on occasional use or trading, but are, as their name implies, based on an open marketplace without a central authority.

Wallet features vary by application but always include wallet setup, balance and transaction records, and the ability to send and receive bitcoin. The full range of features that wallets may support is broad and includes security and privacy options, currency exchange features, accounting tools, interoperability, accessibility, and localization options. The features you include should be based on the needs of your users.
</div>

Some of these features come with highly complex technical challenges. One of which is reliance on third-party services, a sensitive topic for bitcoin applications since they require a high level of trust. Wallets may not support specific features or implement a component in a particular manner for this reason.
## Explorers

Another reason is that standards continue to evolve as Bitcoin matures. Even fundamental aspects of Bitcoin like address formats and key generation are implementable in incompatible ways.
If the blockchain is a public database, explorers are simply windows into that database.

</div>
For Bitcoin, block explorers let users view transaction data, latest blocks, block height, and so on. They also provide insight into bigger picture activity on the Bitcoin network, such as daily transaction numbers. For example, there are typically fewer transactions on weekends, which results in lower fees, which are ideal for low-priority transactions.

As transactions in Lightning payment channels are not recorded on the blockchain, there are also Lightning network explorers. These let you see public information about the nodes and the network, such as channel count, capacity and status. Only participant nodes can look up specific transaction information in a channel.

{% include image.html
image = "/assets/images/guide/getting-started/software/explorer-example.jpg"
retina = "/assets/images/guide/getting-started/software/explorer-example@2x.jpg"
alt-text = "Illustrative interface for block explorer software"
caption = 'Explorers offer insight into activiy on the Bitcoin and Lightning networks. Texture by [Mike van den Bos](https://unsplash.com/@mike_van_den_bos){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
width = 800
height = 388
%}

## Payment processors

Expand All @@ -105,7 +111,7 @@ Another reason is that standards continue to evolve as Bitcoin matures. Even fun
image = "/assets/images/guide/getting-started/software/point-of-sale-example.jpg"
retina = "/assets/images/guide/getting-started/software/point-of-sale-example@2x.jpg"
alt-text = "Illustrative interface for an online shop"
caption = 'Payment processors help merchants to sell good and manage inventory and accounting. Texture by [Majid Gheidarlou](https://unsplash.com/@majidvj){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
caption = 'Payment processors help merchants to sell goods and manage inventory and accounting. Texture by [Majid Gheidarlou](https://unsplash.com/@majidvj){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
width = 400
height = 541
layout = "float-right-desktop"
Expand All @@ -115,47 +121,41 @@ Payment processing applications offer easy-to-use online stores and point-of-sal

</div>

## Exchanges
## Nodes

<div class="center" markdown="1">

Exchanges lets users swap between currencies and typically fall in three general categories. Consumer-focused exchanges let users make trades directly with the exchange. This is ideal for occasional use.


{% include image.html
image = "/assets/images/guide/getting-started/software/exchange-example.jpg"
retina = "/assets/images/guide/getting-started/software/exchange-example@2x.jpg"
alt-text = "Illustrative interface for exchanging bitcoin"
caption = 'Exchanges allow for trading between different currencies. Texture by [Bilal O.](https://unsplash.com/@lightcircle){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
image = "/assets/images/guide/getting-started/software/node-ui-example.jpg"
retina = "/assets/images/guide/getting-started/software/node-ui-example@2x.jpg"
alt-text = "Illustrative interface for node software"
caption = 'Node applications connect to and participate in the bitcoin network. Texture by [okeykat](https://unsplash.com/@okeykat){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
width = 400
height = 388
height = 426
layout = "float-right-desktop"
%}

Exchanges focused on investors and traders usually list many different cryptocurrencies. They allow users to trade with each other by submitting buy and sell requests on currency pairs. These products are generally for experienced users. They offer complex trading features and countless ways to analyze price movements.
Bitcoin [node]({{ '/guide/glossary/node/' | relative_url }}) software connects to and participates in the Bitcoin network. [Full nodes]({{ '/guide/glossary/node/#full-nodes/' | relative_url }}) verify transaction data on the blockchain and ensure the Bitcoin rules are being followed by network participants. A [light node]({{ '/guide/glossary/node/#light-nodes/' | relative_url }}) connects to the Bitcoin network but does not verify or enforce the rules. Some wallet software comes with built-in full node capabilities, such as [Bitcoin Core]({{ '/guide/glossary/#bitcoin-core-client/' | relative_url }}), but most wallet software act as light nodes.

Decentralized exchanges fall in between these categories, focusing on occasional use or trading, but are, as their name implies, based on an open marketplace without a central authority.
Lightning node software connects to and participates in the Lightning network, which extends Bitcoin with payment channels to increase transaction speed and lower costs. It is becoming widely adopted and accepted as the preferred way to scale Bitcoin.
It’s common to use node management software. This simplifies the setup, management and monitoring of nodes by providing graphical user interfaces to interact with the lower level node software instead of CLIs.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would dedicate a whole section to this and go into the nuances of how one can operate their node (personal, merchant, routing node for example). Whole lot of detail here that is missing imo.

Copy link
Contributor Author

@danielnordh danielnordh Sep 14, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None of the other sections go into that much detail about HOW to run the software.
If others agree we should cover the details, then let's review if we should have a separate 'Node management' section. Or if this should be a separate 'how to run and manage your own Lightning node' page?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now I separated the node management info into its own paragraph in f593a43.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whole section as in a separate guide section or page? We have the node page in the glossary already, and I agree with Daniel to keep this overview page light. People can click through to read more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lightning node software and Lightning node management software are two distinct categories. Not saying go into great detail but I think it's relevant enough to have its own section on this page. Later on we could have a dedicated page that goes into the different node operation modes in detail similar to how we have a node page in the glossary.


</div>

## Nodes
## Command-line interfaces (CLI)

<div class="center" markdown="1">
Primarily used by developers, CLIs offer feature-rich ways to interact with nodes and other Bitcoin software. They can be thought of as general-purpose toolboxes, so they require certain technical knowledge and are not optimized for specific use cases. New features are often first included in a CLI and then later added to graphical user interfaces (GUI).

{% include image.html
image = "/assets/images/guide/getting-started/software/node-ui-example.jpg"
retina = "/assets/images/guide/getting-started/software/node-ui-example@2x.jpg"
alt-text = "Illustrative interface for node software"
caption = 'Node applications connect to and participate in the bitcoin network. Texture by [okeykat](https://unsplash.com/@okeykat){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
width = 400
height = 426
layout = "float-right-desktop"
image = "/assets/images/guide/getting-started/software/cli-example.jpg"
retina = "/assets/images/guide/getting-started/software/cli-example@2x.jpg"
alt-text = "Illustrative interface of a command-line interaction"
caption = 'Command line interfaces are text-only. Texture by [Joel Filipe](https://unsplash.com/@joelfilip){:target="_blank" rel="nofollow"} on [Unsplash](https://unsplash.com){:target="_blank" rel="nofollow"}.'
width = 800
height = 350
%}

A [node]({{ '/guide/glossary/node/' | relative_url }}) is simply a computer running a Bitcoin software. Nodes verify transaction data on the Bitcoin blockchain and ensure the Bitcoin rules are being followed by network participants. Some wallets have built-in nodes, and some node software comes packaged with wallet functionality. However, the minimum implementation of a node is syncing data and allowing other software a user has to access it.
</div>

## Mining
## Mining software

<div class="center" markdown="1">

Expand All @@ -169,8 +169,12 @@ A [node]({{ '/guide/glossary/node/' | relative_url }}) is simply a computer runn
layout = "float-right-desktop"
%}

Bitcoin mining is the act of confirming the next block in the blockchain by being the first to solve a computationally intense math problem. The successful miner receives a block reward and the fees for the transactions contained in the new block in bitcoin.

Mining has become primarily a professional undertaking with dedicated software to manage racks of mining hardware. However, some wallets still offer mining features, and there are also cloud mining providers that allow customers to rent mining capacity.

For the Lightning network, transaction confirmation by mining is only required when opening or closing a channel. Instead, node operators are incentivized to maintain payment channels with sufficient liquidity to other nodes by the option to charge a small fee for allowing payments to be routed through them when no direct channel exists between sender and receiver.

</div>

---
Expand Down