You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Description
Markdown files contain a plenty of links which tend to get outdated
occasionally. It's hard to notice when a certain link (local or global)
becomes broken.
In the past, the [`xrefcheck`](https://github.com/serokell/xrefcheck)
tool was used to find broken links:
* #3
* #454
This PR automates `xrefcheck` running by adding it as a new GitHub
Action job. It uses
[xrefcheck-action](https://github.com/serokell/xrefcheck-action) under
the hood.
Resolves#4
In the second commit I tried to fix/ignore broken links detected by
`xrefcheck` using my best judgement. AFAIU `docs/website` contains
sources for https://ouroboros-consensus.cardano.intersectmbo.org/, so I
used that site to check some links.
1. Links in `References.md`, `index.md` and `TechnicalReports.md` don't
work on GitHub because they are invalid in the sense of Markdown, but
they work fine on the website, so I didn't touch them and added a
comment to make `xrefcheck` ignore them.
2. `Glossary.md` contains many links to anchors in the same file. These
anchors work differently in Markdown and Docusarus as can be seen
[here](https://ouroboros-consensus.cardano.intersectmbo.org/docs/for-developers/Glossary/).
Ideally, they should be fixed to work on the resulting website, in which
case all of them would be broken in the sense of Markdown. Fixing them
for Docusaurus is out of scope of this PR, but since they will probably
become broken in the sense of Markdown, I've instructed `xrefcheck` to
ignore all links in that file.
3. There is also an anchor link in `VersioningSchemeDecision.md`, but
this file is not used in the resulting website, so I've fixed it
according to Markdown rules.
There are also some global/absolute links that return 404 and I couldn't
find how to fix them.
```
➥ In file docs/website/contents/for-developers/AbstractProtocol.md
bad reference (external) at src:7:3-178:
- text: "Ouroboros.Consensus.Tutorial.Simple"
- link: https://github.com/IntersectMBO/ouroboros-consensus/blob/master/ouroboros-consensus/src/tutorials/Ouroboros/Consensus/Tutorial/Simple.lhs
- anchor: -
⛂ Resource unavailable (404 Not Found)
➥ In file docs/website/contents/for-developers/AbstractProtocol.md
bad reference (external) at src:9:3-184:
- text: "Ouroboros.Consensus.Tutorial.WithEpoch"
- link: https://github.com/IntersectMBO/ouroboros-consensus/blob/master/ouroboros-consensus/src/tutorials/Ouroboros/Consensus/Tutorial/WithEpoch.lhs
- anchor: -
⛂ Resource unavailable (404 Not Found)
```
Copy file name to clipboardExpand all lines: docs/website/contents/about-ouroboros/index.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,6 +40,7 @@ The Ouroboros research papers that formalize the different protocols (such as Pr
40
40
- the honest nodes will all continually and eventually agree on what the best chain is (unless an adversary controls more than half of the network's stake).
41
41
- the best chain grows over time.
42
42
43
+
<!-- xrefcheck: ignore link -->
43
44
The Consensus Layer defines the core Consensus components and logic, notably the
Copy file name to clipboardExpand all lines: docs/website/contents/for-developers/NodeTasks.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,6 @@
1
1
# Overview of the tasks of a caught-up node
2
2
3
+
<!-- xrefcheck: ignore link -->
3
4
This document gives an overview of the tasks of a [caught-up](./Glossary.md#honest-caught-up-parties) node, both as a relay and as a block producer.
4
5
5
6
## In a single node
@@ -22,7 +23,8 @@ The selection is made up of an immutable and a volatile part:
22
23
- The volatile part of the selection are the newest $k$ blocks.
23
24
They are stored in the VolatileDB, together with other blocks that could be on a fork we might switch to in the future.
24
25
25
-
Additionally, the LedgerDB contains the ledger state corresponding to all [points](./Glossary/#point) on the volatile part of the chain as well as the tip of the immutable chain, in order to validate new blocks and potential forks.
26
+
<!-- xrefcheck: ignore link -->
27
+
Additionally, the LedgerDB contains the ledger state corresponding to all [points](./Glossary.md#point) on the volatile part of the chain as well as the tip of the immutable chain, in order to validate new blocks and potential forks.
26
28
27
29
The flow of information is depicted in the following diagram.
28
30
Rectangular boxes stand for logical components, and hexagons correspond to Haskell RTS threads.
Copy file name to clipboardExpand all lines: docs/website/contents/for-developers/PreflightGuide.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -259,7 +259,7 @@ Finally, we shall note that there are various ideas of how to eliminate grinding
259
259
[^utxo-hd]: The main reason for this is that the ledger state, ie the aggregated information necessary to validate blocks, is currently fully stored in memory.
260
260
The Consensus team is currently working on *UTxO HD*, a solution to move the ledger state to disk.
261
261
262
-
[^resource-relative]: Cardano isnot a huge outlier in either direction, there are many examples for blockchains that are either much less resource-intensive (due to very low activity or new age, or due to very fancy cryptography, like Mina) or much more resource-intensive (due to very old age and large accumulated history, like Bitcoin, or a hyperfocus on performance, like [Solana](https://docs.solana.com/running-validator/validator-reqs#hardware-recommendations)).
262
+
[^resource-relative]: Cardano isnot a huge outlier in either direction, there are many examples for blockchains that are either much less resource-intensive (due to very low activity or new age, or due to very fancy cryptography, like Mina) or much more resource-intensive (due to very old age and large accumulated history, like Bitcoin, or a hyperfocus on performance, like [Solana](https://docs.anza.xyz/operations/requirements#hardware-recommendations)).
263
263
264
264
[^genesis-syncing]: As of early 2024, syncing is a fully trusted process; ifany node you are syncing fromis adversarial, you might end up on an adversarial chain.
265
265
There is an ongoing effort to implement *Ouroboros Genesis*in order to reduce this strong trust assumption; in particular, it will involve reaching out to lots of nodes while syncing.
@@ -293,17 +293,17 @@ for Ungrindable Blockchains" by Kiayias et al](https://eprint.iacr.org/2021/1698
0 commit comments