mirror of
https://github.com/aljazceru/ark.git
synced 2026-02-18 01:24:19 +01:00
@@ -18,7 +18,7 @@ All transactions within Ark must be funded by the Ark Service Provider (ASP) in
|
||||
|
||||
This post discusses some considerations on this topic and calculates the funding needs of the ASP.
|
||||
|
||||
Refer to [nomenclature docs](/docs/nomenclature) for any doubt
|
||||
Refer to [nomenclature docs](/nomenclature) for any doubt
|
||||
|
||||
## Ark liquidity requirements
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Bitcoin is the most secure and censorship blockchain in the world. However, it i
|
||||
|
||||
## 👷♂️ How does it work?
|
||||
|
||||
Start by reading the [Nomenclature](/docs/nomenclature.md) section to understand the key concepts and terminology used in Ark. Then, you can learn how to [Board the Ark](intro/boarding.md) and [Send Payments](intro/payments.md). Finally, you can learn how to [Leave the Ark](intro/leaving.md) and withdraw your funds back to the Bitcoin blockchain if the server is unresponsive.
|
||||
Start by reading the [Nomenclature](/nomenclature.md) section to understand the key concepts and terminology used in Ark. Then, you can learn how to [Board the Ark](intro/boarding.md) and [Send Payments](intro/payments.md). Finally, you can learn how to [Leave the Ark](intro/leaving.md) and withdraw your funds back to the Bitcoin blockchain if the server is unresponsive.
|
||||
|
||||
## 👶🏼 ELI5
|
||||
|
||||
|
||||
@@ -12,17 +12,17 @@ Alice wants to board the Ark of a well-known Ark service provider (ASP). It requ
|
||||
|
||||
### The timeline of events
|
||||
|
||||
1. Alice creates a [Funding transaction](/docs/nomenclature#funding-transaction)
|
||||
1. Alice creates a [Funding transaction](/nomenclature#funding-transaction)
|
||||
|
||||
2. Alice adds any inputs she wants to cover the values the [VTXO](/docs/nomenclature#vtxo-1) she will receive, plus on-chain fees.
|
||||
2. Alice adds any inputs she wants to cover the values the [VTXO](/nomenclature#vtxo-1) she will receive, plus on-chain fees.
|
||||
|
||||
3. Alice adds an output with **two spending conditions**:
|
||||
|
||||
- `(ASP in 1 month)`
|
||||
- A covenant output that forces coins to be spent by a [Redeem transaction](/docs/nomenclature#redeem-transaction) with an output with **two** spending conditions:
|
||||
- A covenant output that forces coins to be spent by a [Redeem transaction](/nomenclature#redeem-transaction) with an output with **two** spending conditions:
|
||||
- `(Alice + ASP)`
|
||||
- `(Alice in 24 hours)`
|
||||
|
||||
4. Alice notifies ASP about the [Funding transaction](/docs/nomenclature#funding-transaction)
|
||||
4. Alice notifies ASP about the [Funding transaction](/nomenclature#funding-transaction)
|
||||
|
||||
5. Alice has now a [VTXO](/docs/nomenclature#vtxo-1).
|
||||
5. Alice has now a [VTXO](/nomenclature#vtxo-1).
|
||||
|
||||
@@ -14,12 +14,12 @@ Alice wants to send funds to Bob inside the Ark.
|
||||
|
||||
### Timeline of events
|
||||
|
||||
1. Alice tells ASP to send [VTXO](/docs/nomenclature#vtxo-1) to Bob
|
||||
2. ASP (with Alice) prepares next [Pool transaction](/docs/nomenclature#pool-transaction-aka-ark-transaction)
|
||||
3. Alice creates a [Forfeit transaction](/docs/nomenclature#forfeit-transaction):
|
||||
1. Alice tells ASP to send [VTXO](/nomenclature#vtxo-1) to Bob
|
||||
2. ASP (with Alice) prepares next [Pool transaction](/nomenclature#pool-transaction-aka-ark-transaction)
|
||||
3. Alice creates a [Forfeit transaction](/nomenclature#forfeit-transaction):
|
||||
- spends from VTXO (1) via `Alice + ASP`
|
||||
- adds connector output from Pool transaction (2) as input
|
||||
- signs (SIGHASH_ALL) and sends it to the ASP
|
||||
4. ASP broadcasts [Pool transaction](/docs/nomenclature#pool-transaction-aka-ark-transaction)
|
||||
5. Bob has now a new [VTXO](/docs/nomenclature#vtxo-1)
|
||||
6. For at most 4 weeks, Alice will be able to double spend her’s [VTXO](/docs/nomenclature#vtxo-1), but if she does it, the ASP will have time to grab the funds from the [VTXO](/docs/nomenclature#vtxo-1) to itself using the [Forfeit transaction](/docs/nomenclature#forfeit-transaction)
|
||||
4. ASP broadcasts [Pool transaction](/nomenclature#pool-transaction-aka-ark-transaction)
|
||||
5. Bob has now a new [VTXO](/nomenclature#vtxo-1)
|
||||
6. For at most 4 weeks, Alice will be able to double spend her’s [VTXO](/nomenclature#vtxo-1), but if she does it, the ASP will have time to grab the funds from the [VTXO](/nomenclature#vtxo-1) to itself using the [Forfeit transaction](/nomenclature#forfeit-transaction)
|
||||
|
||||
@@ -9,7 +9,7 @@ const config = {
|
||||
title: 'Ark',
|
||||
tagline: 'TBD',
|
||||
favicon: 'img/ark-logo.png',
|
||||
url: 'https://dev.arkpill.me',
|
||||
url: 'https://arkdev.info',
|
||||
baseUrl: '/',
|
||||
organizationName: 'Ark',
|
||||
projectName: 'Ark Website',
|
||||
@@ -26,6 +26,7 @@ const config = {
|
||||
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||
({
|
||||
docs: {
|
||||
routeBasePath: "/",
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
// Please change this to your repo.
|
||||
// Remove this to remove the "edit this page" links.
|
||||
@@ -37,9 +38,6 @@ const config = {
|
||||
// Remove this to remove the "edit this page" links.
|
||||
editUrl: 'https://github.com/ark-network/edit/master/website/blog/',
|
||||
},
|
||||
theme: {
|
||||
customCss: require.resolve('./src/css/custom.css'),
|
||||
},
|
||||
}),
|
||||
],
|
||||
],
|
||||
@@ -50,7 +48,7 @@ const config = {
|
||||
// Replace with your project's social card
|
||||
image: 'img/ark-og-image.png',
|
||||
navbar: {
|
||||
title: 'Developer Portal',
|
||||
title: 'Ark',
|
||||
logo: {
|
||||
alt: 'Ark Logo',
|
||||
src: 'img/ark-logo.png',
|
||||
@@ -78,15 +76,15 @@ const config = {
|
||||
items: [
|
||||
{
|
||||
label: 'What Ark is',
|
||||
to: '/docs/specs/index',
|
||||
to: '/specs/index',
|
||||
},
|
||||
{
|
||||
label: 'Join the Ark',
|
||||
to: '/docs/user/intro',
|
||||
to: '/user/intro',
|
||||
},
|
||||
{
|
||||
label: 'Create an Ark',
|
||||
to: '/docs/provider/intro',
|
||||
to: '/provider/intro',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
import React from 'react';
|
||||
import clsx from 'clsx';
|
||||
import styles from './styles.module.css';
|
||||
|
||||
const FeatureList = [
|
||||
{
|
||||
title: 'Fast',
|
||||
description: (
|
||||
<>
|
||||
TBD.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'Secure',
|
||||
description: (
|
||||
<>
|
||||
TBD.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'Convenient',
|
||||
description: (
|
||||
<>
|
||||
TBD.
|
||||
</>
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
function Feature({Svg, title, description}) {
|
||||
return (
|
||||
<div className={clsx('col col--4')}>
|
||||
<div className="text--center">
|
||||
</div>
|
||||
<div className="text--center padding-horiz--md">
|
||||
<h3>{title}</h3>
|
||||
<p>{description}</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default function HomepageFeatures() {
|
||||
return (
|
||||
<section className={styles.features}>
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
{FeatureList.map((props, idx) => (
|
||||
<Feature key={idx} {...props} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
.features {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 2rem 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.featureSvg {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
/**
|
||||
* Any CSS included here will be global. The classic template
|
||||
* bundles Infima by default. Infima is a CSS framework designed to
|
||||
* work well for content-centric websites.
|
||||
*/
|
||||
|
||||
/* You can override the default Infima variables here. */
|
||||
:root {
|
||||
--ifm-color-primary: #2e8555;
|
||||
--ifm-color-primary-dark: #29784c;
|
||||
--ifm-color-primary-darker: #277148;
|
||||
--ifm-color-primary-darkest: #205d3b;
|
||||
--ifm-color-primary-light: #33925d;
|
||||
--ifm-color-primary-lighter: #359962;
|
||||
--ifm-color-primary-lightest: #3cad6e;
|
||||
--ifm-code-font-size: 95%;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||
[data-theme='dark'] {
|
||||
--ifm-color-primary: #25c2a0;
|
||||
--ifm-color-primary-dark: #21af90;
|
||||
--ifm-color-primary-darker: #1fa588;
|
||||
--ifm-color-primary-darkest: #1a8870;
|
||||
--ifm-color-primary-light: #29d5b0;
|
||||
--ifm-color-primary-lighter: #32d8b4;
|
||||
--ifm-color-primary-lightest: #4fddbf;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
import React from 'react';
|
||||
import clsx from 'clsx';
|
||||
import Link from '@docusaurus/Link';
|
||||
import Translate from '@docusaurus/Translate'
|
||||
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
||||
import Layout from '@theme/Layout';
|
||||
import HomepageFeatures from '@site/src/components/HomepageFeatures';
|
||||
|
||||
import styles from './index.module.css';
|
||||
|
||||
function HomepageHeader() {
|
||||
const {siteConfig} = useDocusaurusContext();
|
||||
return (
|
||||
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
||||
<div className="container">
|
||||
<h1 className="hero__title">{siteConfig.title}</h1>
|
||||
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
||||
<div className={styles.buttons}>
|
||||
<Link className="button button--outline" to="/docs/">
|
||||
<Translate>DOCS</Translate>
|
||||
</Link>
|
||||
<Link
|
||||
className="button button--outline"
|
||||
to="/blog">
|
||||
<Translate>BLOG</Translate>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
|
||||
export default function Home() {
|
||||
const {siteConfig} = useDocusaurusContext();
|
||||
return (
|
||||
<Layout
|
||||
title={`Hello from ${siteConfig.title}`}
|
||||
description="Description will go into a meta tag in <head />">
|
||||
<HomepageHeader />
|
||||
<main>
|
||||
<HomepageFeatures />
|
||||
</main>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* CSS files with the .module.css suffix will be treated as CSS modules
|
||||
* and scoped locally.
|
||||
*/
|
||||
|
||||
.heroBanner {
|
||||
padding: 4rem 0;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 996px) {
|
||||
.heroBanner {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
title: Markdown page example
|
||||
---
|
||||
|
||||
# Markdown page example
|
||||
|
||||
You don't need React to write simple standalone pages.
|
||||
Reference in New Issue
Block a user