Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 5 additions & 5 deletions hugo-site/content/resources/manual/components/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ weight: 1
## Components of Decentralized Software

Delegates, contracts, and user interfaces (UIs) each serve distinct roles in the Freenet ecosystem.
[Contracts](/manual/components/contracts) control public data, or "shared state".
[Delegates](/manual/components/delegates) act as the user's agent and can store private data on the
user's behalf, while [User Interfaces](/manual/components/ui) provide an interface between these and
[Contracts](/resources/manual/components/contracts) control public data, or "shared state".
[Delegates](/resources/manual/components/delegates) act as the user's agent and can store private data on the
user's behalf, while [User Interfaces](/resources/manual/components/ui) provide an interface between these and
the user through a web browser. UIs are distributed through the P2P network via contracts.

![Architectural Primitives Diagram](/components.svg)
Expand All @@ -21,8 +21,8 @@ The Freenet Core is the software that enables a user's computer to connect to th
Its primary functions are:

- Providing a user-friendly interface to access Freenet via a web browser
- Host the user's [delegates](/manual/components/delegates) and the private data they store
- Host [contracts](/manual/components/contracts) and their associated data on behalf of the network
- Host the user's [delegates](/resources/manual/components/delegates) and the private data they store
- Host [contracts](/resources/manual/components/contracts) and their associated data on behalf of the network
- Manage communication between contracts, delegates, and UI components

Built with Rust, the core is designed to be compact (ideally under 5 MB), efficient, and capable of
Expand Down
4 changes: 2 additions & 2 deletions hugo-site/content/resources/manual/components/ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ On the normal web, a user might visit `https://gmail.com/`, their browser will d
user interface which then runs in their browser and connects back to the Gmail servers.

On Freenet the user interface is downloaded from a Freenet contract, and it
[interacts](/manual/components/overview) with contracts and delegates by sending messages through
[interacts](/resources/manual/components/overview) with contracts and delegates by sending messages through
the Freenet core.

![Delegate, Contrat, and UI Diagram](/ui_delegate_contract.svg)
![Delegate, Contract, and UI Diagram](/ui_delegate_contract.svg)

These UIs are built using web technologies such as HTML, CSS, and JavaScript, and are distributed
over Freenet and run in a web browser. UIs can create, retrieve, and update contracts through a
Expand Down
8 changes: 4 additions & 4 deletions hugo-site/content/resources/manual/contract-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ draft: false

## Terms

- [Contract State](/manual/glossary#contract-state) - data associated with a contract that can be
- [Contract State](/resources/manual/glossary#contract-state) - data associated with a contract that can be
retrieved by Applications and Delegates.
- [Delta](/manual/glossary#delta) - Represents a modification to some state - similar to a
- [Delta](/resources/manual/glossary#delta) - Represents a modification to some state - similar to a
[diff](https://en.wikipedia.org/wiki/Diff) in source code
- [Parameters](/manual/glossary#parameters) - Data that forms part of a contract along with the
- [Parameters](/resources/manual/glossary#parameters) - Data that forms part of a contract along with the
WebAssembly code
- [State Summary](/manual/glossary#state-summary) - A compact summary of a contract's state that can
- [State Summary](/resources/manual/glossary#state-summary) - A compact summary of a contract's state that can
be used to create a delta

## Interface
Expand Down
6 changes: 3 additions & 3 deletions hugo-site/content/resources/manual/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,20 @@ Make sure docker is installed and working, and has the `docker compose` command.
The docker image stores its data at `/root/.local/share/freenet` inside the container. This is
mapped to `/tmp/freenet-docker` outside the container.

## Build the base docker image of Locutus
## Build the base Docker image of Freenet

All the docker related files are in the `docker` subdirectory.

Requires that Docker be installed and working. Then, in the root directory of the repo:

To build the docker freenet container:
To build the Docker Freenet container:

```sh
cd docker
docker compose build
```

## Running Freenet from the docker image
## Running Freenet from the Docker image

Note: Currently the node will not pick up new contracts when they are published. Make sure the node
is stopped and re-started after new contracts are added.
Expand Down
26 changes: 13 additions & 13 deletions hugo-site/content/resources/manual/manifest.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ draft: false
The `freenet.toml` file for each UI component/contract is called its _manifest_. It is written in
the [TOML](https://toml.io/) format. Manifest files consist of the following sections:

- [[contract]](/manual/manifest#the-contract-section) — Defines a contract.
- [type](/manual/manifest#the-type-field) — Contract type.
- [lang](/manual/manifest#the-lang-field) — Contract source language.
- [output_dir](/manual/manifest#the-output_dir-field) — Output path for build artifacts.
- [[webapp]](/manual/manifest#the-contract-section) — Configuration for UI component containers.
- [[state]](/manual/manifest#the-state-section) — Optionally seed a state.
- [[contract]](#the-contract-section) — Defines a contract.
- [type](#the-type-field) — Contract type.
- [lang](#the-lang-field) — Contract source language.
- [output_dir](#the-output_dir-field) — Output path for build artifacts.
- [[webapp]](#the-contract-section) — Configuration for UI component containers.
- [[state]](#the-state-section) — Optionally seed a state.

## The `[contract]` section

Expand All @@ -26,9 +26,9 @@ type = "webapp"

The type of the contract being packaged. Currently the following types are supported:

- `standard`, the default type, it can be ellided. This is just a standard
[contract](/manual/glossary#contract).
- `webapp`, a web app [container contract](/manual/glossary#container-contract). Additionally to the
- `standard`, the default type, it can be elided. This is just a standard
[contract](/resources/manual/glossary#contract).
- `webapp`, a web app [container contract](/resources/manual/glossary#container-contract). Additionally to the
container contract the UI component source will be compiled and packaged as the state of the
contract.

Expand Down Expand Up @@ -84,7 +84,7 @@ An optional path to the metadata for the webapp, if not set the metadata will be

### The `[webapp.typescript]` options section

Optional section specified in case of the the `typescript` lang.
Optional section specified in case of the `typescript` lang.

The following fields are supported:

Expand All @@ -97,7 +97,7 @@ webpack = true

### The `[webapp.javascript]` options section

Optional section specified in case of the the `javascript` lang.
Optional section specified in case of the `javascript` lang.

The following fields are supported:

Expand All @@ -117,11 +117,11 @@ files = ["*/src/**.js"]
```

Specifies the sources for the state of the contract, this will be later on unpacked and accessible
at the HTTP gateway from the Locutus node. Includes any web sources (like .html or .js files). The
at the HTTP gateway from the Freenet node. Includes any web sources (like .html or .js files). The
`source_dirs` field is a comma separated array of directories that should be appended to the root of
the state, the `files` field is a comma separated array of
[glob](<https://en.wikipedia.org/wiki/Glob_(programming)>) compatible patterns to files that will be
appendeded to the state.
appended to the state.

At least one of `source_dirs`or `files` fields are required.

Expand Down