Skip to content

Commit

Permalink
docs: add documentation skeleton
Browse files Browse the repository at this point in the history
  • Loading branch information
immortal-tofu committed Aug 6, 2024
1 parent d2d1a52 commit 63926b3
Show file tree
Hide file tree
Showing 40 changed files with 262 additions and 0 deletions.
26 changes: 26 additions & 0 deletions .github/config/commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const RuleConfigSeverity = require('@commitlint/types').RuleConfigSeverity;
const Configuration = {
/*
* Resolve and load @commitlint/config-conventional from node_modules.
* Referenced packages must be installed
*/
extends: ['@commitlint/config-conventional'],
/*
* Resolve and load conventional-changelog-atom from node_modules.
* Referenced packages must be installed
*/
parserPreset: 'conventional-changelog-conventionalcommits',
/*
* Resolve and load @commitlint/format from node_modules.
* Referenced package must be installed
*/
formatter: '@commitlint/format',
/*
* Any rules defined here will override rules from @commitlint/config-conventional
*/
rules: {
'type-empty': [RuleConfigSeverity.Error, 'never'],
},
};

module.exports = Configuration;
17 changes: 17 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
changelog:
categories:
- title: Breaking Changes
labels:
- breaking-changes
- title: New features
labels:
- features
- title: Improvements
labels:
- improvements
- title: Fixes
labels:
- fix
- title: Other Changes
labels:
- "*"
22 changes: 22 additions & 0 deletions .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Run commitlint on PR

on:
pull_request:

jobs:
commitlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: 20.x
- run: npm ci
- name: Install commitlint
run: |
npm install -g @commitlint/cli@^18
- name: Validate all commits from PR
run: npx commitlint --config .github/config/commitlint.config.js --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
20 changes: 20 additions & 0 deletions .github/workflows/linkchecker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Check Markdown links

on:
pull_request:
push:
branches:
- main
schedule:
# Run everyday at 9:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07)
- cron: "0 9 * * *"

jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec # v1.0.15
with:
use-quiet-mode: "yes"
use-verbose-mode: "yes"
53 changes: 53 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
description: >-
fhEVM is a technology that enables confidential smart contracts on the EVM
using Fully Homomorphic Encryption (FHE).
layout:
title:
visible: true
description:
visible: true
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: false
---

# Welcome to fhEVM

## Get started

Learn the basics of fhEVM, set it up, and make it run with ease.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>What is fhEVM</strong></td><td>Understand the basic concepts of fhEVM library.</td><td><a href=".gitbook/assets/start1.png">start1.png</a></td><td><a href="getting_started/overview.md">overview.md</a></td></tr><tr><td><strong>Write contract</strong></td><td>Start writing fhEVM smart contract using Hardhat template</td><td><a href=".gitbook/assets/start4.png">start4.png</a></td><td><a href="fundamentals/write_contract/hardhat.md">hardhat.md</a></td></tr><tr><td><strong>Deploy on fhEVM native</strong></td><td>Get 10 Zama token to start working with fhEVM native</td><td><a href=".gitbook/assets/start2.png">start2.png</a></td><td><a href="getting_started/devnet.md">devnet.md</a></td></tr><tr><td><strong>Deploy on Ethereum</strong></td><td>Coming soon!</td><td><a href=".gitbook/assets/start5.png">start5.png</a></td><td><a href="getting_started/ethereum.md">ethereum.md</a></td></tr></tbody></table>

### References

Refer to the API and access additional resources for in-depth explanations while working with fhEVM.

- [fhEVM API specifications](references/fhevm_api.md)
- [Gateway API specifications](references/gateway_api.md)

### Supports

Ask technical questions and discuss with the community. Our team of experts usually answers within 24 hours in working days.

- [Community forum](https://community.zama.ai/c/fhevm/15)
- [Discord channel](https://discord.com/invite/fhe-org)
- [Telegram](https://t.me/+Ojt5y-I7oR42MTkx)

### Developers

Collaborate with us to advance the FHE spaces and drive innovation together.

- [Contribute to fhEVM](developer/contribute.md)
- [Follow the development roadmap](developer/roadmap.md)
- [See the latest test release note](https://github.com/zama-ai/fhevm-backend/releases)
- [Request a feature](https://github.com/zama-ai/fhevm-backend/issues/new)
- [Report a bug](https://github.com/zama-ai/fhevm-backend/issues/new)

---

We value your feedback! [Take a 5-question developer survey](http://zama.ai/developer-survey) to improve the fhEVM library and the documentation and help other developers use FHE.
62 changes: 62 additions & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Table of contents

- [Welcome to fhEVM](README.md)

## Getting Started

- [Quick start](getting_started/quick_start.md)
- fhEVM
- [go-ethereum integration](getting_started/fhevm/geth.md)
- [Run Coprocessor](getting_started/fhevm/coprocessor.md)
- [Run Native](getting_started/fhevm/native.md)
- [Deploy initial contracts](getting_started/fhevm/contracts.md)
- [Configuration](getting_started/fhevm/configuration.md)
- Gateway
- [Configuration](getting_started/gateway/configuration.md)
- TKMS
- [Use Zama's TKMS](getting_started/tkms/zama.md)
- [Request the creation of a new private key](getting_started/tkms/create.md)
- [Application Smart Contract](getting_started/tkms/contract.md)
- [Run a KMS](getting_started/tkms/run.md)

## Fundamentals

- [Architecture](fundamentals/overview.md)
- fhEVM
- [Architecture](fundamentals/fhevm/architecture.md)
- [Contracts](fundamentals/fhevm/contracts.md)
- [Backend](fundamentals/fhevm/backend.md)
- [Execution](fundamentals/fhevm/execution.md)
- [Storage](fundamentals/fhevm/storage.md)
- [Inputs](fundamentals/fhevm/inputs.md)
- [Data Availability Layer](fundamentals/fhevm/dal.md)
- [Genesis](fundamentals/fhevm/genesis.md)
- Gateway
- [Decryption](fundamentals/gateway/decryption.md)
- [Reencryption](fundamentals/gateway/reencryption.md)
- [Inclusion proof](fundamentals/gateway/proof.md)
- [Decryption and reencryption request on TKMS](fundamentals/gateway/asc.md)
- TKMS
- [Architecture](fundamentals/tkms/architecture.md)
- [Blockchain](fundamentals/tkms/blockchain.md)
- [Threshold protocol](fundamentals/tkms/threshold.md)
- [Zama's TKMS](fundamentals/tkms/zama.md)
- [Glossary](getting_started/glossary.md)

## Guides

- [Node hardware](guides/hardware.md)
- [Run a benchmark](guides/benchmark.md)

## References

- [fhEVM API specifications](references/fhevm_api.md)
- [Gateway API specifications](references/gateway_api.md)

## Developer

- [Contributing](developer/contribute.md)
- [Development roadmap](developer/roadmap.md)
- [Release note](https://github.com/zama-ai/fhevm/releases)
- [Feature request](https://github.com/zama-ai/fhevm/issues/new)
- [Bug report](https://github.com/zama-ai/fhevm/issues/new)
8 changes: 8 additions & 0 deletions docs/developer/contribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Contributing

There are two ways to contribute to the Zama fhEVM:

- [Open issues](https://github.com/zama-ai/fhevm/issues/new/choose) to report bugs and typos, or to suggest new ideas
- Request to become an official contributor by emailing [[email protected]](mailto:[email protected]).

Becoming an approved contributor involves signing our Contributor License Agreement (CLA)). Only approved contributors can send pull requests, so please make sure to get in touch before you do!
1 change: 1 addition & 0 deletions docs/developer/roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Roadmap
1 change: 1 addition & 0 deletions docs/fundamentals/fhevm/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Architecture
1 change: 1 addition & 0 deletions docs/fundamentals/fhevm/backend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Backend
1 change: 1 addition & 0 deletions docs/fundamentals/fhevm/contracts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Contracts
1 change: 1 addition & 0 deletions docs/fundamentals/fhevm/dal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Data Availability Layer
1 change: 1 addition & 0 deletions docs/fundamentals/fhevm/genesis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Genesis
1 change: 1 addition & 0 deletions docs/fundamentals/fhevm/inputs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Inputs
1 change: 1 addition & 0 deletions docs/fundamentals/fhevm/storage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Storage
1 change: 1 addition & 0 deletions docs/fundamentals/gateway/asc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Decryption and reencryption request on TKMS
1 change: 1 addition & 0 deletions docs/fundamentals/gateway/decryption.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Decryption
1 change: 1 addition & 0 deletions docs/fundamentals/gateway/proof.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Inclusion proof
1 change: 1 addition & 0 deletions docs/fundamentals/gateway/reencryption.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Reencryption
15 changes: 15 additions & 0 deletions docs/fundamentals/glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Glossary

## Smart Contracts

### fhEVM

- _ACL smart contract_: Smart contract deployed on the fhEVM blockchain to manage access control of ciphertexts. dApp contracts use this to persists their own access rights and to delegate access to other contracts.

- _Gateway smart contract_: Smart contract deployed on the fhEVM blockchain that is used by a dApp smart contract to request a decrypt. This emits an event that triggers the gateway.

- _KMS smart contract_: Smart contract running on the fhEVM blockchain that is used by a dApp contract to verify decryption results from the KMS. To that end, it contains the identity of the KMS and is used to verify its signatures.

### TKMS

- _fhEVM ASC_: Smart contract to which transaction from the gateway (connector) are submitted to. This contract contains all customization logic required to work with the specific fhEVM blockchain.
Empty file added docs/fundamentals/overview.md
Empty file.
1 change: 1 addition & 0 deletions docs/fundamentals/tkms/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Architecture
1 change: 1 addition & 0 deletions docs/fundamentals/tkms/blockchain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Blockchain
1 change: 1 addition & 0 deletions docs/fundamentals/tkms/threshold.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Threshold
1 change: 1 addition & 0 deletions docs/fundamentals/tkms/zama.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Zama's TKMS
1 change: 1 addition & 0 deletions docs/getting_started/fhevm/configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Configuration
1 change: 1 addition & 0 deletions docs/getting_started/fhevm/contracts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Deploy initial contracts
1 change: 1 addition & 0 deletions docs/getting_started/fhevm/coprocessor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Coprocessor
9 changes: 9 additions & 0 deletions docs/getting_started/fhevm/geth.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Integration

This document is a guide listing detailed steps to integrate `fhevm-backend` into [go-ethereum](https://github.com/ethereum/go-ethereum) or any other implementations that follow the same architecture.

{% hint style="info" %}
This document is based on go-ethereum v1.13.5
{% endhint %}

## Todo
1 change: 1 addition & 0 deletions docs/getting_started/fhevm/native.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Native
1 change: 1 addition & 0 deletions docs/getting_started/gateway/configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Configuration
1 change: 1 addition & 0 deletions docs/getting_started/quick_start.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Quick start
1 change: 1 addition & 0 deletions docs/getting_started/tkms/contract.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Application Smart Contract
1 change: 1 addition & 0 deletions docs/getting_started/tkms/create.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Request the creation of a new private key
1 change: 1 addition & 0 deletions docs/getting_started/tkms/run.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Run a KMS
1 change: 1 addition & 0 deletions docs/getting_started/tkms/zama.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Use Zama's TKMS
1 change: 1 addition & 0 deletions docs/guides/benchmark.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Run a benchmark
1 change: 1 addition & 0 deletions docs/guides/hardware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Node hardware
1 change: 1 addition & 0 deletions docs/references/fhevm_api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# fhEVM API specifications
1 change: 1 addition & 0 deletions docs/references/gateway_api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Gateway API specifications

0 comments on commit 63926b3

Please sign in to comment.