Skip to content

Update Getting started - Software overview with Lightning content #473

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 37 commits into from
Sep 17, 2021
Merged
Show file tree
Hide file tree
Changes from all 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.
129 changes: 68 additions & 61 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,74 @@ 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]({{ '/guide/payments/send/' | relative_url }}), [receive]({{ '/guide/payments/receive/' | relative_url }}), store and manage their coins.

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.
Wallet features vary by application but always include [wallet setup]({{ '/guide/designing-products/common-user-flows/#software-onboarding' | relative_url }}), balance and transaction records, and the ability to [send]({{ '/guide/payments/send/' | relative_url }}) and [receive]({{ '/guide/payments/receive/' | relative_url }}) bitcoin. The full range of features that wallets may support is broad and includes security and [privacy]({{ '/guide/payments/privacy/' | relative_url }}) options, currency exchange features, accounting tools, [interoperability]({{ '/guide/designing-products/principles/#interoperability' | relative_url }}), accessibility, and localization options.

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]({{ '/guide/glossary/address/' | relative_url }}) or [HD wallets]({{ '/guide/glossary/wallet/#hd-wallet' | relative_url }}) 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.


{% 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.
Consumer-focused exchanges let users buy and sell directly with the exchange. This is good for occasional use.

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.
Exchanges focused on investors and traders usually list many different cryptocurrencies. They allow users to trade with each other by submitting buy and sell orders on currency pairs. These products are generally for experienced users. They offer complex trading features and ways to analyze price movements.

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.
Decentralized exchanges focus on occasional use or trading, and are, as their name implies, based on an open marketplace without a central authority.

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.
</div>

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.
## Explorers

</div>
If the blockchain is a public database, explorers are simply windows into that database.

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, resulting in lower fees, 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 activity 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 = 492
%}

## Payment processors

Expand All @@ -105,7 +113,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 +123,42 @@ 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. Nodes typically download and broadcast user transactions, and optionally help verify blockchain data more broadly. Some wallet software comes with built-in node capabilities, such as [Bitcoin Core]({{ '/guide/glossary/#bitcoin-core-client/' | relative_url }}), but most wallet software connects to external nodes. Learn more on the [Node page]({{ '/guide/glossary/node/' | relative_url }}) in the glossary.

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, separate from the node software itself. 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.

</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,7 +172,11 @@ A [node]({{ '/guide/glossary/node/' | relative_url }}) is simply a computer runn
layout = "float-right-desktop"
%}

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.
Bitcoin [mining]({{ '/guide/getting-started/technology-primer/#how-are-transactions-confirmed' | relative_url }}) is the act of confirming transactions by solving a computationally intense problem, which is rewarded via freshly minted bitcoin and transaction fees.

Mining has become primarily a professional undertaking with dedicated software to manage racks of [mining hardware]({{ '/guide/getting-started/hardware/#miners' | relative_url }}). However, some wallets still offer mining features, and there are also cloud mining providers that allow customers to rent mining capacity.

Mining does not exist for transactions on the Lightning network, so there is no equivalent software. However, opening and closing payment channels on Lightning involve transactions, that need to be mined on the Bitcoin network.

</div>

Expand Down