Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Fix docs urls #11966

Merged
merged 5 commits into from
Aug 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Substrate is a next-generation framework for blockchain innovation 🚀.
## Trying it out

Simply go to [docs.substrate.io](https://docs.substrate.io) and follow the
[installation](https://docs.substrate.io/v3/getting-started/overview) instructions. You can
[installation](https://docs.substrate.io/main-docs/install/) instructions. You can
also try out one of the [tutorials](https://docs.substrate.io/tutorials/).

## Contributions & Code of Conduct
Expand Down
32 changes: 14 additions & 18 deletions bin/node-template/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ local node template.
### Multi-Node Local Testnet

If you want to see the multi-node consensus algorithm in action, refer to our
[Start a Private Network tutorial](https://docs.substrate.io/tutorials/v3/private-network).
[Simulate a network tutorial](https://docs.substrate.io/tutorials/get-started/simulate-network/).

## Template Structure

Expand All @@ -129,7 +129,7 @@ Substrate-based blockchain nodes expose a number of capabilities:
- Networking: Substrate nodes use the [`libp2p`](https://libp2p.io/) networking stack to allow the
nodes in the network to communicate with one another.
- Consensus: Blockchains must have a way to come to
[consensus](https://docs.substrate.io/v3/advanced/consensus) on the state of the
[consensus](https://docs.substrate.io/main-docs/fundamentals/consensus/) on the state of the
network. Substrate makes it possible to supply custom consensus engines and also ships with
several consensus mechanisms that have been built on top of
[Web3 Foundation research](https://research.web3.foundation/en/latest/polkadot/NPoS/index.html).
Expand All @@ -138,22 +138,20 @@ Substrate-based blockchain nodes expose a number of capabilities:
There are several files in the `node` directory - take special note of the following:

- [`chain_spec.rs`](./node/src/chain_spec.rs): A
[chain specification](https://docs.substrate.io/v3/runtime/chain-specs) is a
[chain specification](https://docs.substrate.io/main-docs/build/chain-spec/) is a
source code file that defines a Substrate chain's initial (genesis) state. Chain specifications
are useful for development and testing, and critical when architecting the launch of a
production chain. Take note of the `development_config` and `testnet_genesis` functions, which
are used to define the genesis state for the local development chain configuration. These
functions identify some
[well-known accounts](https://docs.substrate.io/v3/tools/subkey#well-known-keys)
[well-known accounts](https://docs.substrate.io/reference/command-line-tools/subkey/)
and use them to configure the blockchain's initial state.
- [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of
the libraries that this file imports and the names of the functions it invokes. In particular,
there are references to consensus-related topics, such as the
[longest chain rule](https://docs.substrate.io/v3/advanced/consensus#longest-chain-rule),
the [Aura](https://docs.substrate.io/v3/advanced/consensus#aura) block authoring
mechanism and the
[GRANDPA](https://docs.substrate.io/v3/advanced/consensus#grandpa) finality
gadget.
[block finalization and forks](https://docs.substrate.io/main-docs/fundamentals/consensus/#finalization-and-forks)
and other [consensus mechanisms](https://docs.substrate.io/main-docs/fundamentals/consensus/#default-consensus-models)
such as Aura for block authoring and GRANDPA for finality.

After the node has been [built](#build), refer to the embedded documentation to learn more about the
capabilities and configuration parameters that it exposes:
Expand All @@ -165,16 +163,15 @@ capabilities and configuration parameters that it exposes:
### Runtime

In Substrate, the terms
"[runtime](https://docs.substrate.io/v3/getting-started/glossary#runtime)" and
"[state transition function](https://docs.substrate.io/v3/getting-started/glossary#state-transition-function-stf)"
"runtime" and "state transition function"
are analogous - they refer to the core logic of the blockchain that is responsible for validating
blocks and executing the state changes they define. The Substrate project in this repository uses
the [FRAME](https://docs.substrate.io/v3/runtime/frame) framework to construct a
[FRAME](https://docs.substrate.io/main-docs/fundamentals/runtime-intro/#frame) to construct a
blockchain runtime. FRAME allows runtime developers to declare domain-specific logic in modules
called "pallets". At the heart of FRAME is a helpful
[macro language](https://docs.substrate.io/v3/runtime/macros) that makes it easy to
[macro language](https://docs.substrate.io/reference/frame-macros/) that makes it easy to
create pallets and flexibly compose them to create blockchains that can address
[a variety of needs](https://www.substrate.io/substrate-users/).
[a variety of needs](https://substrate.io/ecosystem/projects/).

Review the [FRAME runtime implementation](./runtime/src/lib.rs) included in this template and note
the following:
Expand All @@ -184,8 +181,7 @@ the following:
- The pallets are composed into a single runtime by way of the
[`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html)
macro, which is part of the core
[FRAME Support](https://docs.substrate.io/v3/runtime/frame#support-crate)
library.
FRAME Support [system](https://docs.substrate.io/reference/frame-pallets/#system-pallets) library.

### Pallets

Expand All @@ -196,12 +192,12 @@ template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs
A FRAME pallet is compromised of a number of blockchain primitives:

- Storage: FRAME defines a rich set of powerful
[storage abstractions](https://docs.substrate.io/v3/runtime/storage) that makes
[storage abstractions](https://docs.substrate.io/main-docs/build/runtime-storage/) that makes
it easy to use Substrate's efficient key-value database to manage the evolving state of a
blockchain.
- Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched)
from outside of the runtime in order to update its state.
- Events: Substrate uses [events and errors](https://docs.substrate.io/v3/runtime/events-and-errors)
- Events: Substrate uses [events and errors](https://docs.substrate.io/main-docs/build/events-errors/)
to notify users of important changes in the runtime.
- Errors: When a dispatchable fails, it returns an error.
- Config: The `Config` configuration interface is used to define the types and parameters upon
Expand Down
6 changes: 3 additions & 3 deletions bin/node-template/docs/rust-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Installation
---

This guide is for reference only, please check the latest information on getting starting with Substrate
[here](https://docs.substrate.io/v3/getting-started/installation/).
[here](https://docs.substrate.io/main-docs/install/).

This page will guide you through the **2 steps** needed to prepare a computer for **Substrate** development.
Since Substrate is built with [the Rust programming language](https://www.rust-lang.org/), the first
Expand Down Expand Up @@ -73,11 +73,11 @@ brew install openssl

### Windows

**_PLEASE NOTE:_** Native development of Substrate is _not_ very well supported! It is _highly_
**_PLEASE NOTE:_** Native Windows development of Substrate is _not_ very well supported! It is _highly_
recommend to use [Windows Subsystem Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
(WSL) and follow the instructions for [Ubuntu/Debian](#ubuntudebian).
Please refer to the separate
[guide for native Windows development](https://docs.substrate.io/v3/getting-started/windows-users/).
[guide for native Windows development](https://docs.substrate.io/main-docs/install/windows/).

## Rust developer environment

Expand Down
10 changes: 5 additions & 5 deletions bin/node-template/pallets/template/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

/// Edit this file to define custom logic or remove it if it is not needed.
/// Learn more about FRAME and the core library of Substrate FRAME pallets:
/// <https://docs.substrate.io/v3/runtime/frame>
/// <https://docs.substrate.io/reference/frame-pallets/>
pub use pallet::*;

#[cfg(test)]
Expand Down Expand Up @@ -31,15 +31,15 @@ pub mod pallet {
pub struct Pallet<T>(_);

// The pallet's runtime storage items.
// https://docs.substrate.io/v3/runtime/storage
// https://docs.substrate.io/main-docs/build/runtime-storage/
#[pallet::storage]
#[pallet::getter(fn something)]
// Learn more about declaring storage items:
// https://docs.substrate.io/v3/runtime/storage#declaring-storage-items
// https://docs.substrate.io/main-docs/build/runtime-storage/#declaring-storage-items
pub type Something<T> = StorageValue<_, u32>;

// Pallets use events to inform users when important changes are made.
// https://docs.substrate.io/v3/runtime/events-and-errors
// https://docs.substrate.io/main-docs/build/events-errors/
#[pallet::event]
#[pallet::generate_deposit(pub(super) fn deposit_event)]
pub enum Event<T: Config> {
Expand Down Expand Up @@ -68,7 +68,7 @@ pub mod pallet {
pub fn do_something(origin: OriginFor<T>, something: u32) -> DispatchResult {
// Check that the extrinsic was signed and get the signer.
// This function will return an error if the extrinsic is not signed.
// https://docs.substrate.io/v3/runtime/origins
// https://docs.substrate.io/main-docs/build/origins/
let who = ensure_signed(origin)?;

// Update storage.
Expand Down
2 changes: 1 addition & 1 deletion client/rpc-api/src/state/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ pub trait StateApi<Hash> {
/// [substrate storage][1], [transparent keys in substrate][2],
/// [querying substrate storage via rpc][3].
///
/// [1]: https://docs.substrate.io/v3/advanced/storage#storage-map-keys
/// [1]: https://docs.substrate.io/main-docs/fundamentals/state-transitions-and-storage/
/// [2]: https://www.shawntabrizi.com/substrate/transparent-keys-in-substrate/
/// [3]: https://www.shawntabrizi.com/substrate/querying-substrate-storage-via-rpc/
///
Expand Down
2 changes: 1 addition & 1 deletion frame/examples/basic/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ use frame_system::RawOrigin;
// To actually run this benchmark on pallet-example-basic, we need to put this pallet into the
// runtime and compile it with `runtime-benchmarks` feature. The detail procedures are
// documented at:
// https://docs.substrate.io/v3/runtime/benchmarking#how-to-benchmark
// https://docs.substrate.io/reference/how-to-guides/weights/add-benchmarks/
//
// The auto-generated weight estimate of this pallet is copied over to the `weights.rs` file.
// The exact command of how the estimate generated is printed at the top of the file.
Expand Down
2 changes: 1 addition & 1 deletion frame/examples/basic/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ const MILLICENTS: u32 = 1_000_000_000;
// - assigns a dispatch class `operational` if the argument of the call is more than 1000.
//
// More information can be read at:
// - https://docs.substrate.io/v3/runtime/weights-and-fees
// - https://docs.substrate.io/main-docs/build/tx-weights-fees/
//
// Manually configuring weight is an advanced operation and what you really need may well be
// fulfilled by running the benchmarking toolchain. Refer to `benchmarking.rs` file.
Expand Down
3 changes: 3 additions & 0 deletions frame/remark/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,14 @@ fn generates_event() {
System::set_block_number(System::block_number() + 1); //otherwise event won't be registered.
assert_ok!(Remark::<Test>::store(RawOrigin::Signed(caller.clone()).into(), data.clone(),));
let events = System::events();
// this one we create as we expect it
let system_event: <Test as frame_system::Config>::Event = Event::Stored {
content_hash: sp_io::hashing::blake2_256(&data).into(),
sender: caller,
}
.into();
// this one we actually go into the system pallet and get the last event
// because we know its there from block +1
let frame_system::EventRecord { event, .. } = &events[events.len() - 1];
assert_eq!(event, &system_event);
});
Expand Down
2 changes: 1 addition & 1 deletion frame/sudo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,6 @@ You need to set an initial superuser account as the sudo `key`.

[`Call`]: ./enum.Call.html
[`Config`]: ./trait.Config.html
[`Origin`]: https://docs.substrate.io/v3/runtime/origins
[`Origin`]: https://docs.substrate.io/main-docs/build/origins/

License: Apache-2.0
2 changes: 1 addition & 1 deletion frame/sudo/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
//!
//! * [Democracy](../pallet_democracy/index.html)
//!
//! [`Origin`]: https://docs.substrate.io/v3/runtime/origins
//! [`Origin`]: https://docs.substrate.io/main-docs/build/origins/

#![cfg_attr(not(feature = "std"), no_std)]

Expand Down
2 changes: 1 addition & 1 deletion frame/support/procedural/src/pallet/expand/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ pub fn expand_error(def: &mut Def) -> proc_macro2::TokenStream {
if get_doc_literals(&error_item.attrs).is_empty() {
error_item.attrs.push(syn::parse_quote!(
#[doc = r"
Custom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)
Custom [dispatch errors](https://docs.substrate.io/main-docs/build/events-errors/)
of this pallet.
"]
));
Expand Down
2 changes: 1 addition & 1 deletion frame/support/procedural/src/pallet/expand/event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ pub fn expand_event(def: &mut Def) -> proc_macro2::TokenStream {
if get_doc_literals(&event_item.attrs).is_empty() {
event_item.attrs.push(syn::parse_quote!(
#[doc = r"
The [event](https://docs.substrate.io/v3/runtime/events-and-errors) emitted
The [event](https://docs.substrate.io/main-docs/build/events-errors/) emitted
by this pallet.
"]
));
Expand Down
2 changes: 1 addition & 1 deletion frame/support/procedural/src/pallet/expand/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ pub fn expand(mut def: Def) -> proc_macro2::TokenStream {
def.item.attrs.push(syn::parse_quote!(
#[doc = r"
The module that hosts all the
[FRAME](https://docs.substrate.io/v3/runtime/frame)
[FRAME](https://docs.substrate.io/main-docs/build/events-errors/)
types needed to add this pallet to a
runtime.
"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ pub fn expand_pallet_struct(def: &mut Def) -> proc_macro2::TokenStream {
if get_doc_literals(&pallet_item.attrs).is_empty() {
pallet_item.attrs.push(syn::parse_quote!(
#[doc = r"
The [pallet](https://docs.substrate.io/v3/runtime/frame#pallets) implementing
The [pallet](https://docs.substrate.io/reference/frame-pallets/#pallets) implementing
the on-chain logic.
"]
));
Expand Down
2 changes: 1 addition & 1 deletion frame/support/src/dispatch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ impl<T> Parameter for T where T: Codec + EncodeLike + Clone + Eq + fmt::Debug +
///
/// The following are reserved function signatures:
///
/// * `deposit_event`: Helper function for depositing an [event](https://docs.substrate.io/v3/runtime/events-and-errors).
/// * `deposit_event`: Helper function for depositing an [event](https://docs.substrate.io/main-docs/build/events-errors/).
/// The default behavior is to call `deposit_event` from the [System
/// module](../frame_system/index.html). However, you can write your own implementation for events
/// in your runtime. To use the default behavior, add `fn deposit_event() = default;` to your
Expand Down
2 changes: 1 addition & 1 deletion frame/support/src/traits/misc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -763,7 +763,7 @@ impl<T: MaxEncodedLen> MaxEncodedLen for WrapperOpaque<T> {
fn max_encoded_len() -> usize {
let t_max_len = T::max_encoded_len();

// See scale encoding https://docs.substrate.io/v3/advanced/scale-codec
// See scale encoding: https://docs.substrate.io/reference/scale-codec/
if t_max_len < 64 {
t_max_len + 1
} else if t_max_len < 2usize.pow(14) {
Expand Down
2 changes: 1 addition & 1 deletion primitives/runtime/src/bounded/bounded_vec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -847,7 +847,7 @@ where
fn max_encoded_len() -> usize {
// BoundedVec<T, S> encodes like Vec<T> which encodes like [T], which is a compact u32
// plus each item in the slice:
// https://docs.substrate.io/v3/advanced/scale-codec
// See: https://docs.substrate.io/reference/scale-codec/
codec::Compact(S::get())
.encoded_size()
.saturating_add(Self::bound().saturating_mul(T::max_encoded_len()))
Expand Down
2 changes: 1 addition & 1 deletion primitives/runtime/src/bounded/weak_bounded_vec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ where
fn max_encoded_len() -> usize {
// WeakBoundedVec<T, S> encodes like Vec<T> which encodes like [T], which is a compact u32
// plus each item in the slice:
// https://docs.substrate.io/v3/advanced/scale-codec
// See: https://docs.substrate.io/reference/scale-codec/
codec::Compact(S::get())
.encoded_size()
.saturating_add(Self::bound().saturating_mul(T::max_encoded_len()))
Expand Down