1
0
mirror of https://github.com/ipdb/website.git synced 2024-12-27 07:07:44 +01:00

delete all the things

This commit is contained in:
Matthias Kretschmann 2017-12-18 15:27:36 +01:00
parent 0dfcecfff3
commit 170cf22ce8
Signed by: m
GPG Key ID: 606EEEF3C479A91F
27 changed files with 23 additions and 1181 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@ -1,76 +0,0 @@
#
# HEADS UP!
#
# Possible keys:
# - name
# - position
# - bio
# - social (optional)
# - prefix (optional): used to prefix the name, like Dr.
#
# The photo is grabbed automatically based on the webified version of the name.
# Each photo needs to be put as a square JPG in _src/_assets/img/board/ with the file name reflecting the name, e.g. David Holtzman would be david-holtzman.jpg
#
- name: David Holtzman
position: President
bio: |
David Holtzman is an information technology security expert, educator and activist. He started his career as a cryptographic analyst, military codebreaker, U.S. Naval Security Group submariner, and Soviet Manned Space Program analyst. Holtzman is an early-stage internet pioneer.
He was the CTO at Network Solutions when it managed the domain name system, where he oversaw the explosive growth of the commercial internet to more than 20 million domain names by the late 1990s. He is the author of Privacy Lost: How Technology is Endangering Your Privacy, and a regular commentator for major news media, including Bloomberg Television, BBC, CNN, The New York Times, Business Week, and The Washington Post.
social:
- name: Twitter
link: https://twitter.com/theglobalpov
- name: Constance Choi
position: Secretary
bio: |
Constance Choi is the co-founder and Director of [COALA](http://coala.global/), an international multidisciplinary collaborative research and development initiative on blockchain technologies, smart contracts, and decentralized autonomous applications. Choi co-founded and was General Counsel and Chief Compliance Officer of the Kraken digital asset exchange.
She holds a J.D. from UC Berkeley School of Law, and undergraduate degrees from Brown University and University of Cambridge. She has practiced at several law firms, including the Electronic Frontier Foundation, focusing on internet and technology law, intellectual property, privacy, data security, and constitutional rights.
social:
- name: Twitter
link: https://twitter.com/sevenadvisory
- name: Greg McMullen
position: Treasurer
bio: |
Greg McMullen is a lawyer, internet advocate, and Chief Policy Officer at BigchainDB, where he built the framework for the IPDB Foundation and helped bring together its founding caretakers. He is a leading member of the [COALA IP](https://www.coalaip.org/) working group and co-authored the COALA IP specification and policy paper.
Before joining BigchainDB and IPDB, he was a litigator at one of Canadas top class actions law firms, where he worked on class actions involving privacy, copyright, competition law, and price fixing conspiracies. He served on the board of directors the BC Civil Liberties Association, Canadas largest civil liberties organization, and authored the BCCLAs guide to privacy and security when crossing borders with electronic devices.
social:
- name: Twitter
link: https://twitter.com/gmcmullen
- name: Nina-Luisa Siedler
prefix: Dr.
position: Member-at-Large
bio: |
Dr. Nina-Luisa Siedler is a lawyer and partner at [DWF Berlin](https://www.dwf.law/people/n/nina-siedler/) with over 15 years of experience. She is interested in FinTech and decentralized technology, and her practice includes blockchain matters. She is an advisor to Blockchain Hub Berlin.
Dr. Siedler is specialized in structured finance, including credit and capital market instruments, especially acquisition and project financing, real estate transactions, asset-backed securities, structured cover bonds, debt loans, and corporate bonds.
social:
- name: Twitter
link: https://twitter.com/ninsie3
- name: Kaspar Korjus
position: Member-at-Large
bio: |
Kaspar Korjus is the Managing Director of Estonias [e-Residency](https://e-estonia.com/e-residents/about/) program, which offers a fully digital identity for global citizens. e-Residency is built on inclusion, transparency, and legitimacy. It is meant to empower citizens globally and provide world-wide digital and financial inclusion.
Korjus was chosen by Megan Smith, CTO of the United States, as one of 20 digital leaders for the Global Leaders Digital Exchange (GLDE) program, and is listed in Forbes Estonias “30 under 30” as #1 in Technology and Finance.
social:
- name: Twitter
link: https://twitter.com/kasparkorjus

View File

@ -1,50 +0,0 @@
- name: COALA
link: http://coala.global
- name: Internet Archive
link: https://archive.org
- name: Human Data Commons Foundation
link: https://humandatacommons.org
- name: Dyne.org
link: https://www.dyne.org
- name: Monax
link: https://monax.io
- name: IPFS
link: https://ipfs.io
- name: unMonastery
link: http://unmonastery.org
- name: BigchainDB
link: https://www.bigchaindb.com
- name: OpenMedia
link: https://openmedia.org
- name: SmartContract
link: https://smartcontract.com
logo: false
- name: OuiShare
link: http://ouishare.net
- name: Tendermint
link: https://tendermint.com
- name: Stratumn
link: https://www.stratumn.com
- name: CREATE-NET
link: http://create-net.fbk.eu
logo: false
- name: KICTANet
link: https://www.kictanet.or.ke
- name: Global Consent
link: http://www.consent.global/
logo: false

View File

@ -1,34 +0,0 @@
intro: |
Building a decentralized organization that runs smoothly is not easy. Weve learned from those who came before us, from the DNS to The DAO.
IPDB is coordinated by the IPDB Foundation, which is made up of its member caretakers and its elected management board. The IPDB Foundation advances the research of blockchain technology and decentralized governance for the benefit of society.
caretakers:
title: Caretakers
description: "The IPDB Foundation is made up of member organizations we call caretakers. Our caretakers elect our management board and run the nodes that store and validate blocks containing the transactions sent to IPDB."
features:
- title: "Public interest mandate"
description: "A majority of caretakers must be not-for-profit organizations so the mission will take priority over profit."
- title: "Jurisdictional diversity"
description: "Less than half of the caretakers can be based in any one legal jurisdiction, so a single legal attack can't shut down the network."
- title: "Geographical diversity"
description: "Our caretakers are based around the world to limit disruption from regional events such as power outages or natural disasters."
- title: "Management board"
description: "Caretakers elect the management board, which is responsible for the day-to-day operations of IPDB."
members:
title: "Current Caretakers"
description: "Our caretakers share our commitment to building a decentralized internet."
board:
title: Management Board
description: "The management board oversees the day-to-day operations of the IDPB Foundation. The management board is elected by the caretakers for a two year term."
vision:
title: "Science & Research"
description: "The IPDB Foundation advances science and research."
text: |
The IPDB Foundation promotes science and research on the operation of scalable blockchain databases, the governance of decentralized systems, and the applications of blockchain technology.
The IPDB Foundation has taken a leading role in the Berlin blockchain community. We co-organized the [9984 Summit](https://2017.9984.io/), a two-day conference in Berlin bringing together top blockchain thinkers from around the world. We co-organize the [IPDB-BigchainDB Meetup](https://www.meetup.com/BigchainDB-IPDB-Meetup/) in Berlin. We have sent speakers to numerous conferences and events in Berlin and across the EU, and have published numerous [blog posts](https://medium.com/ipdb-blog) on blockchain technology.
In the future we will continue to make our work available in many ways——hosting or presenting at conferences and workshops, publishing research results and technical papers, releasing open source software, and more. Everything we do will be made available online, for the benefit of the public.

View File

@ -1,102 +0,0 @@
- question: What is IPDB?
answer: |
IPDB is the Interplanetary Database. It's a ready-to-use public network with a focus on strong governance, all powered by BigchainDB. Think of IPDB as being the database for a decentralized world computer.
- question: Who owns IPDB?
answer: |
No one “owns” IPDB. We see it as a public good. IPDB is operated by the IPDB Foundation e.V., a charitable organization registered in Berlin, Germany. The IPDB Foundation has a number of member organizations, or Caretakers, who provide consensus voting and input on governance.
- question: How is IPDB funded?
answer: |
The IPDB Foundation is currently funded by BigchainDB GmbH, but plans to become self-sufficient through donations and by selling transactions on IPDB.
- question: Where can I find the IPDB governance documents?
answer: |
Our [Articles of Association](/foundation/articles/) are available in German and in English.
- question: Who is on the Board of Directors?
answer: |
You can always find the current [Board of Directors on the Foundation page](/foundation/#board).
- question: Who can use IPDB?
answer: |
Anyone can use IPDB. You can learn more about getting started [on the front page](/).
- question: What are the IPDB Terms of Service and Privacy Policy?
answer: |
The most recent versions of the [IPDB Terms of Service](https://ipdb.io/terms) and [IPDB Privacy Policy](https://ipdb.io/privacy) are always available on the IPDB website.
- question: How do I use IPDB?
answer: |
IPDB is based on [BigchainDB](https://www.bigchaindb.com/). You can learn about using the IPDB client API on the BigchainDB documentation page.
- question: How much does it cost to use IPDB?
answer: |
When it launches, IPDB will be free to everyone. Eventually IPDB will start charging its heavy users on a per-transaction basis. For most users, IPDB will remain free.
- question: How much *will* it cost?
answer: |
We dont know yet, but we intend to keep it really cheap. Cheap means orders of magnitude cheaper than other blockchain databases.
- question: Is it open source?
answer: |
All the code and documentation used or produced by IPDB is open source. You can view the source for [BigchainDB](https://github.com/bigchaindb/bigchaindb), or better yet, make a contribution!
- question: What do Caretakers do?
answer: |
Caretakers play a critical role in IPDBs operation and governance (see “How does consensus work on IPDB?”). In addition to voting on transactions on IPDB, Caretakers vote to approve new Caretakers and to select the IPDB Foundations board of directors.
- question: How are Caretakers chosen?
answer: |
Caretakers can apply to IPDB to be considered. The existing Caretakers will vote to decide whether a new Caretaker should be added.
- question: Who can become a Caretaker?
answer: |
Caretakers must have demonstrated a commitment to building or protecting an open, decentralized Internet. A majority of the Caretaker roles must be held by not-for-profit organizations. Caretakers are chosen to reflect a diversity of roles, geographical locations, and jurisdictions.
- question: Who are the current Caretakers?
answer: |
You can always find the current list of [IPDB Caretakers on the Foundation page](/foundation/#caretakers).
- question: Can my organization be a Caretaker?
answer: |
Maybe! If you think youre a good fit, contact us at !EMAIL_CARETAKERS!.
## Transactions
- question: Can I delete a Transaction?
answer: |
No. Transactions cannot be deleted from IPDB once they have been written. Not even the IPDB Foundation or any of the Caretakers can delete or change Transactions once they have been written.
- question: Who owns the information I write to IPDB?
answer: |
You do. You keep the copyright or other rights in all information you record to IPDB.
## Technical
- question: What technology is IPDB based on?
answer: |
IPDB is a public instance of [BigchainDB](https://www.bigchaindb.com/), a scalable blockchain database.
- question: What is the IPDB consensus model?
answer: |
IPDB operates on a federated model for consensus. The IPDB federation relies on a number of trusted entities we call Caretakers. The Caretakers vote on all transactions on the network, and transactions approved by the majority are added to the database. You can learn more about the consensus model in the BigchainDB [whitepaper](https://www.bigchaindb.com/whitepaper/).
- question: Is IPDB a blockchain?
answer: |
No. IPDB brings blockchain characteristics to an open source big data database: 1) decentralized control, 2) immutability, and 3) assets.
- question: Is IPDB a currency?
answer: |
No. IPDB has native assets but those assets are not a currency. Instead, anyone can issue and transfer assets or tokens that represent something else.
- question: Can other people see my transactions?
answer: |
Yes. Anyone can see the transactions made on IPDB. IPDB is a public instance of BigchainDB.
- question: Can IPDB talk to other blockchains?
answer: |
BigchainDB has already been integrated with other services. Other integrations are waiting to be created. If you have a request, or better still, if you want to help out, you can head over to the [BigchainDB developer community](https://github.com/bigchaindb/bigchaindb) at Github.
- question: Why is IPDB better than Ethereum, Bitcoin, IPFS, Dogecoin…?
answer: |
IPDB is not a replacement for decetralized computation platforms such as Ethereum, file storage from IPFS, or cryptocurrencies such as Bitcoin. IPDB is *complimentary* to them. We see IPDB as filling a gap in the decentralized stack.

View File

@ -1,23 +1,7 @@
main:
- title: Foundation
url: /foundation/
- title: Docs
url: /docs/
- title: Contact
url: /contact/
footer:
- title: FAQ
url: /faq/
- title: Blog
url: https://medium.com/ipdb-blog
- title: Jobs
url: /jobs/
legal:
- title: Terms
url: /terms/
- title: Privacy
url: /privacy/
- title: Imprint
url: /imprint/

View File

@ -1,41 +0,0 @@
<div class="board grid grid--full grid-small--half grid--gutters">
{% assign board = site.data.board %}
{% for member in board %}
{% assign slug = (member.name | downcase | replace: ' ', '-') %}
<div class="grid__col">
<div class="boardmember">
<div class="boardmember__info">
<img class="boardmember__avatar" src="/assets/img/board/{{ slug }}.jpg">
<div class="boardmember__meta">
<h1 class="boardmember__name">
{% if member.prefix %}{{ member.prefix }} {% endif %}
{{ member.name }}
</h1>
<p class="boardmember__position">{{ member.position }}</p>
{% if member.social %}
<p class="boardmember__social">
{% for item in member.social %}
<a href="{{ item.link }}" title="{{ item.name }}">
<svg class="icon" aria-labelledby="title">
<title>{{ item.name }}</title>
<use xlink:href="/assets/img/sprite.svg#icon-{{ item.name | downcase }}"></use>
</svg>
</a>
{% endfor %}
</p>
{% endif %}
</div>
</div>
<div class="boardmember__bio">{{ member.bio | markdownify }}</div>
</div>
</div>
{% endfor %}
</div>

View File

@ -1,24 +0,0 @@
<div class="caretakers grid grid--half grid-medium--fit grid-medium--columns grid--justifycenter grid--gutters">
{% assign caretakers = (site.data.caretakers | sort: 'name') %}
{% for caretaker in caretakers %}
{% assign slug = (caretaker.name | downcase | replace: ' ', '-' | replace: '.', '-') %}
<div class="grid__col grid__col--2">
<a class="caretaker" href="{{ caretaker.link }}" rel="external">
{% if caretaker.logo == false %}
<span class="caretaker__name">{{ caretaker.name }}</span>
{% else %}
<svg class="logo-caretaker logo-caretaker--{{ slug }}" aria-labelledby="title">
<title>{{ caretaker.name }}</title>
<use xlink:href="/assets/img/sprite.svg#logo-{{ slug }}"></use>
</svg>
{% endif %}
</a>
</div>
{% endfor %}
</div>

View File

@ -1,12 +0,0 @@
<form class="form form--newsletter" action="//foundation.us15.list-manage.com/subscribe/post?u=036bac2d4e3a3ea3de876a8dd&amp;id=8a21e3e9ca" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" target="_blank">
<div class="form__group required">
<label class="form__label" for="mce-EMAIL">Your Email</label>
<div class="input-group">
<input class="form__control" type="email" id="mce-EMAIL" name="EMAIL" required placeholder=" ">
<input class="button button-primary button--small" type="submit" value="Subscribe">
</div>
<span class="form__help">We will never use the contact information you submit for anything except delivering our newsletter.</span>
</div>
</form>

View File

@ -1,28 +0,0 @@
<nav class="menu menu--sub menu--foundation section--background">
<div class="row">
<div class="menu-overflow">
<a class="menu__link" href="/foundation/#caretakers" data-scroll>{{ site.data.content-foundation.caretakers.title }}</a>
<a class="menu__link" href="/foundation/#board" data-scroll>{{ site.data.content-foundation.board.title }}</a>
<a class="menu__link" href="/foundation/#vision" data-scroll>{{ site.data.content-foundation.vision.title }}</a>
{% assign current_page = page %}
|
{% for page in site.pages %}
{% if page.path contains 'foundation' %}
{% assign active = nil %}
{% if page.url == current_page.url %}
{% assign active = 'active' %}
{% endif %}
{% unless page.path contains 'foundation/index' or page.language == 'de' %}
<a class="menu__link {{ active }}" href="{{ page.url }}">{{ page.title }}</a>
{% endunless %}
{% endif %}
{% endfor%}
</div>
</div>
</nav>

View File

@ -19,9 +19,6 @@
<a class="menu__link {{ active }}" href="{{ link.url }}">{{ link.title }}</a>
{% endfor %}
<a class="button button--small button--primary" href="{{ site.signup.link }}">{{ site.signup.button_short }}</a>
<a class="button button--small" href="{{ site.login.link }}">{{ site.login.button }}</a>
</div>
</div>

View File

@ -1,11 +0,0 @@
---
layout: page
title: Canary
narrow: true
---
![](/assets/img/canary.jpg)
By Alan Manson <a href="https://commons.wikimedia.org/wiki/File%3AForest_Canary_%28Serinus_scotops%29_facing_left%2C_front_view.jpg">2007_10_13_13_16_Forest_Canary</a> [[CC BY-SA 2.0](http://creativecommons.org/licenses/by-sa/2.0)], via Wikimedia Commons

View File

@ -1,125 +0,0 @@
---
layout: page
title: IPDB Developer Documentation
subtitle: Sharing the knowledge
narrow: true
---
Under [developers.ipdb.io](https://developers.ipdb.io) you can find the portal for developers who want to access IPDB. Right now, we are inviting users to participate in the IPDB Test Network. If you arent already in, you can sign up for early access to the IPDB Test Network. We plan to open the IPDB Production Network to everyone soon.
## Getting Started
Anyone—a person or organization—can sign up for an IPDB Developer Portal account as a developer. By signing up, you agree to the IPDB Test Network [Terms of Service](/terms/) and [Privacy Policy](/privacy/).
New accounts must be approved by the IPDB Support Team. Every developer will get one application (or app) to start with.
If approved, a developer can create more applications (details below). If a developer is denied or rejected, their account and initial application will be deleted.
## Application ID and Keys
Every application has an application ID (`app_id`) and one or more application keys (`app_key`). The app id and keys are also called API credentials. Each application can make HTTP requests using its credentials and the BigchainDB HTTP API (explained below). An application should only use its own credentials, never the credentials of other applications.
Application IDs and application keys should be kept secret.
If you, as a developer, want to allow users to send HTTP requests directly to the IPDB Test Network or Production Network, you must first get explicit prior consent from the IPDB Foundation. Only then are you, as a developer, allowed to share app ids and app keys with your users.
## How to Make HTTP Requests
The IPDB Test Network is an instance of a BigchainDB cluster. The API is documented under [BigchainDB HTTP API](https://docs.bigchaindb.com/projects/server/en/latest/drivers-clients/http-client-server-api.html).
### API root endpoint
```
https://test.ipdb.io/api/v1/
```
### Examples
#### Connect using Python
```python
from bigchaindb_driver import BigchainDB
tokens = {}
tokens['app_id'] = 'bcdc4699'
tokens['app_key'] = '0ab98d2ca2e8ca6f37518b9d0eb5ac50'
bdb = BigchainDB('https://test.ipdb.io', headers=tokens)
```
[BigchainDB Python driver on GitHub](https://github.com/bigchaindb/bigchaindb-driver) | [Python driver usage documentation](https://docs.bigchaindb.com/projects/py-driver/en/master/usage.html)
#### Connect using Node.js
```js
const driver = require('bigchaindb-driver')
let bdb = new driver.Connection('https://test.ipdb.io/api/v1/', {
app_id: 'bcdc4699',
app_key: '0ab98d2ca2e8ca6f37518b9d0eb5ac50'
})
```
[BigchainDB JavaScript driver on GitHub](https://github.com/bigchaindb/js-bigchaindb-driver)
#### Connect using curl
```bash
curl -X "POST" "https://test.ipdb.io/api/v1/transactions/" \
-H "app_id: bcdc4699" \
-H "app_key: 0ab98d2ca2e8ca6f37518b9d0eb5ac50" \
-d "@tx.json"
```
### Limits
- Each of your applications has its own limits. Those limits are determined by the plan that the application is using. Application plan limits are outlined in the Billing section below.
- Maximum of 500,000 API calls per day, summed over all applications. This is a limit of our current 3scale plan.
- Maximum of 600 API calls per minute, summed over all applications. This is a limit of our current 3scale plan.
- Maximum HTTP request body size (e.g. transaction size) of 15kB (15 kilobytes = 15000 bytes). (We use the NGINX setting `client_max_body_size 15k;` to enforce this.)
- NGINX is set to process a maximum of 10 requests per second sustained, per IP address. It can hold up to 10 more requests (per IP address) in its buffer, to accomodate short bursts above 10 requests per second.
## How to Create a New Application
There are two ways for a developer to create a new application.
1. One way is to sign in on the developer portal, click APPLICATIONS in the top menu, and then click the button labelled *Create new application*.
2. A second way is to make an HTTP request to the IPDB-Agent, an online microservice that can create new applications on behalf of IPDB. If you'd like to do this, please contact us using the IPDB Foundation's [contact page](/contact/).
## Billing
A developer can have several applications. Each application has a plan associated with it.
Right now, the IPDB Test Network only has one plan: a free plan, but it has a limit. We keep track of the total data transferred IN by each application, and that is capped at 100 MB per month. We may change that cap in the future, and we may offer additional plans in the future, including paid ones.
The IPDB Production Network is not currently available, but we intend to offer the following plans once it is available:
1. Free: 1 MB data transfer (IN) per month (about 1k transactions`*`)
2. $10 per month: 10 MB data transfer (IN) per month (about 10k transactions*)
3. $20 per month: 100 MB data transfer (IN) per month (about 100k transactions*)
4. $100 per month: 1000 MB data transfer (IN) per month (about 1M transactions*)
`*`assuming an average transaction size of 1 kb (typical).
When an application goes over 80% of its data transfer allowance, an email alert is sent to the developer. Same for 90% and 100%. If an application goes over its data transfer allowance (i.e. over 100%), then subsequent API requests from that application will be dropped.
A developer can change an application's billing plan mid-month (e.g. to get more data transfer allowance).
All application data transfer allowances reset at the beginning of each month. If an application doesn't use up its data transfer allowance for a month, then the remaining data transfer is not rolled over into the next month.
The first invoice is sent to the developer 34 days after they sign up for a plan (pro-rated, meaning they are only invoiced for the part of the month that they had the plan). All subsequent invoices are sent near the beginning of each month, typically the fourth day of the month. Two days after an invoice is issued, it becomes due and the associated credit card will be charged (if applicable).
## How to Change an Application's Plan
If you want to change an application's plan, then login to the IPDB Developer Portal, go to Applications, click on the name of the application, and then click the "REVIEW/CHANGE" button beside the name of the plan. Note: The Test Network API has only one plan, so you can't change to a different one. Also, at the time of writing, the Production Network had only one available plan.
You can't change an application from a Test Network API plan to a Production Network API plan or vice versa.
## How to Delete an Application
If you want to delete an application, please email your request to support@ipdb.io.
## How to Delete Your Developer Account
If you want to delete your developer account, please email your request to [support@ipdb.io](mailto:support@ipdb.io).
## Contact Us
Anyone can contact us using the IPDB Foundation's [contact page](/contact/).

View File

@ -1,31 +0,0 @@
---
layout: page
title: Frequently Asked Questions
subtitle: Get answers to your most pressing questions
css: page-faq
---
{% capture email_caretakers %}<a href="mailto:{{ site.data.contact.email_caretakers }}">{{ site.data.contact.email_caretakers }}</a>{% endcapture %}
<section class="section section--faq">
<div class="row row--narrow">
<div class="faq-contents">
{% for faq in site.data.faq %}
<h1 class="faq-contents__title"><a href="#{{ faq.question | downcase | replace: ' ','-' | replace: '?', '' }}" data-scroll>{{ faq.question }}</a></h1>
{% endfor %}
</div>
<div class="faq content--page--markdown">
{% for faq in site.data.faq %}
{% assign id = faq.question | downcase | replace: ' ','-' | replace: '?', '' %}
<h1 class="faq__question" id="{{ id }}"><a class="header-link" href="#{{ id }}">#</a> {{ faq.question }}</h1>
<div class="faq__answer">{{ faq.answer | replace: '!EMAIL_CARETAKERS!', email_caretakers | markdownify }}</div>
{% endfor %}
</div>
</div>
</section>

View File

@ -1,19 +0,0 @@
---
layout: page
title: Articles
subtitle: Articles of Association of the IPDB Foundation
narrow: true
language: en
alternate:
- language: de
link: /foundation/satzung/
---
<div class="alert alert--info">
IPDB Foundation is registered as a non-profit in Germany. The English version of this document is for information only. The <a href="/foundation/satzung/">German version</a> is legally binding.
</div>
*Coming soon...*

View File

@ -1,174 +0,0 @@
---
layout: page
title: Bylaws
narrow: true
---
# Definitions
1. **Advisor** means an individual appointed to serve as an advisor to the Foundation.
1. **Advisory Committee** means a subset of Advisors established by the Board to provide advice on a specific subject area.
1. **Applicant** means an entity that has applied to become a Caretaker.
1. **Articles** means the current Articles of Association (Satzung) of the Foundation. If there is a conflict between the English and German versions of the Articles, the German version prevails.
1. **Board** means the Board of Directors of the Foundation.
1. **Board Member** means an individual member of the Board.
1. **Bylaws** means this document.
1. **Caretaker** means a member of the Foundation.
1. **Conference** means an audio or video teleconference.
1. **Foundation** means the Interplanetary Database Foundation e.V.
1. **IPDB** means the Interplanetary Database, a decentralized database made up of the cluster of Nodes operated by Caretakers.
1. **Key Pair** means a cryptographic public-private key pair generated by a Board Member, Caretaker, or Representative by the means set out in Policy.
1. **Node** means an instance of the Software operated by a Caretaker.
1. **Policy** means policies, procedures, or other guidelines approved by the Board.
1. **Private Key** means the half of a Key Pair used by Caretakers to sign blocks or votes or by Board Members or Representatives to sign votes.
1. **Public Key** means the half of a Key Pair publicly associated with a Board Member, Caretaker, or Representative and serves as their identifier on IPDB or within the Foundation.
1. **Representative** means an individual or individuals designated by a Caretaker to be the Staffs point of contact for that Caretaker, with the authority to vote on the Caretakers behalf in Caretakers meetings.
1. **Software** means the software the Board determines must be run on each Node.
1. **Staff** means individuals appointed by the Board to administer the day-to-day activities of the Foundation.
# Structure
1. The Foundation will be registered in Berlin, Germany, as a charitable organization.
1. The Bylaws expand on the text of the Articles. If there is a conflict between the Bylaws and the Articles, the Articles prevail.
# Board (Article 6)
## Board meetings
1. The Board will meet at least once per quarter.
1. Board Members may attend Board meetings in person or by Conference.
1. Additional Board meetings can be called with the agreement of two Board Members.
1. A Board meeting quorum is met if at least 3 Board Members are in attendance.
## Votes by board members
1. Board Members may cast votes in person, by Conference, or by email.
1. Votes by voice can be cast in person or by Conference.
1. Votes in writing must be cast by email and, if required by Policy, must be signed with the Board Members Private Key.
## Board elections
1. The Board will determine the date of elections for the Board.
1. Staff will deliver notice of a Board election, listing any vacancies and candidates nominated by the Board, within one month of the election, by email to the Representatives and on a page on the Foundation website.
1. The Board may nominate candidates for vacancies on the Board to be delivered with notice of the Board election, or at any time up to two weeks before the election.
1. Caretakers may nominate candidates for vacancies on the Board at any time after notice of the Board election has been delivered, or at any time up to two weeks before the election.
1. All candidates may provide a 500 character biography and a URL to be posted on the Foundation website.
1. Staff will deliver a final notice of the Board election, along with a complete list of candidates and their biographies, two weeks before the election.
## Staff
1. The Board may delegate authority to Staff, including signing authority for the Foundation.
1. The scope of authority granted to Staff must be clearly set out by the Board in its grant of authority.
1. The Board will appoint at least one person as Staff to perform the duties set out in the Bylaws.
# Advisors (Article 7)
1. Advisors are appointed by a majority vote by the Board.
1. Consultations between Board Members and Advisors can be kept in confidence as between the Board Member and the Advisor.
1. The Board may establish Advisory Committees to provide advice in their areas of expertise.
1. The Board may delegate the development of Policies to an Advisory Committee established for that purpose.
1. The Board may vote to request formal advice from Advisors or Advisory Committees. 1. The response to such a request will be made public.
# Caretakers (Articles 3-5)
## Caretaker representatives
1. Caretakers must nominate at least one individual as a Representative.
1. The Representative must generate a Key Pair.
## Caretakers meetings
1. Staff will provide notice of meetings of the Caretakers to the Caretakers Representatives
1. Caretakers may attend meetings in person or by Conference.
## Votes by caretakers
1. Caretakers Representatives vote on behalf of the Caretakers.
1. Representatives may cast votes in person, by Conference, or by email.
1. Votes by voice can be cast in person or by Conference.
1. Votes in writing must be cast by email and, if required by Policy, must be signed with the Representatives Private Key.
## Number of caretakers
1. The Foundation may have no more than 100 Caretakers.
1. The Board may admit a maximum of 20 Caretakers each year, at the discretion of the Board.
## Adding caretakers (Article 3)
1. Entities that wish to become a Caretaker may apply in writing to the Foundation.
1. The Board reviews Applicants with consideration to the requirements and targets listed in this section.
1. To admit an Applicant, the Board must be satisfied that the Applicant is committed to the Foundations mission and building a decentralized internet that is open, inclusive, transparent, and diverse.
1. The following requirements for Caretaker diversity must always be met by the current membership:
1. More than 50% of Caretakers must be not-for-profit or charitable organizations.
1. Fewer than 50% of Caretakers may be based in any one country.
1. The following targets for Caretaker diversity are not requirements, but will be weighted highly in the Boards determination:
1. More than 66% of the Caretakers should be not-for-profit or charitable organization.
1. Fewer than 25% of Caretakers should be based in any one country.
1. Fewer than 50% of Caretakers should be based in any one region.
1. At least one Caretaker should be based in each region.
## Expulsion of caretakers
1. The process for expulsion is triggered by a complaint regarding the conduct of the Caretaker brought to the Foundation by a Board Member, another Caretaker, or a member of the public.
1. Staff will receive complaints and present them to the Board as they are received.
Complaints will be addressed at the next regularly scheduled Board meeting.
If the matter is urgent, a special Board meeting can be called if requested by 20% of Caretakers or 2 Board Members.
1. The Board may dismiss a complaint without comment if it is unanimously voted by the Board to be frivolous or unfounded. Votes to dismiss a complaint must be in writing, and must be reported to the Caretakers by the Board along with the complaint.
The Board will call for a comments over a period of 4 weeks, during which all Caretakers, including the subject of the complaint, can present arguments and evidence for or against expulsion.
1. After the comment period the Board will consider the factors below, then either dismiss the complaint as unfounded or recommend that the Caretakers vote to expel the subject of the complaint.
1. All Caretakers except the subject of the complaint may vote on the Boards recommendation. If the vote passes, the subject of the complaint is expelled from the Foundation and their keys will be invalidated immediately.
## Grounds for expulsion
1. The following factors will be considered by the Board and Caretakers in reviewing the subject of a complaint:
1. Actions by the Caretaker determined to be in violation of the Articles or the mission statement of the Foundation.
1. Deliberate tampering with the validity or integrity of IPDB.
1. Failure to comply with Policies for security, privacy, or operating a Node.
1. Failure of the Representative to respond to communications from Staff in a timely manner.
1. Actions by the Caretaker determined to be detrimental to the success, functioning, or reputation of IPDB or the Foundation.
# Keys
## Generating keys
1. Caretakers and Representatives will generate Key Pairs in the manner set in Policy.
## Securing keys
1. Caretakers and Representatives will communicate their Public Keys to the Foundation in the manner set in Policy.
1. Private keys will be secured in the manner set in Policy.
## Revoking signing authority
1. If a complaint against a Caretaker is brought to the Board, that Caretakers authority to sign blocks on IPDB will be suspended.
1. Signing authority can be reinstated if the complaint is unfounded or dismissed.
# Nodes
## Operating a node
1. Nodes can be operated on hardware operated by third party providers or hardware managed by the Caretaker.
1. Caretakers without the technical capacity to maintain a Node may, with the approval of the Board, retain a part-time system administrator to maintain the Node, or be paired with another Caretaker who can offer assistance.
## Cloud accounts
1. The Foundation will provide Caretakers cloud accounts on which to run the Software.
Caretakers must manage their credentials in accordance with Policy.
1. Cloud accounts can only be used to operate the Software.
## Security
1. Caretakers must follow all security Policy approved by the Board.
## Software
1. Caretakers must run the version of the Software approved by the Board, and must upgrade in accordance with Policy approved by the Board.
# Privacy and Information Handling
1. Caretakers must follow all privacy Policy approved by the Board.
1. Caretakers may release information to third parties only if it is required to comply with a binding legal processes such as a court order or a warrant, except as defined in privacy Policy approved by the Board.
1. If a Caretaker or the Foundation receives any legal request, order, or demand, the recipient must notify Staff and the other Caretakers immediately.
1. Caretakers will put a file in a public location on their website called canary.txt and will remove that file if the Caretaker has received a legal request, order, or demand but is restrained from notifying the Caretakers or the Foundation of the request.

View File

@ -1,120 +0,0 @@
---
layout: page
title: Foundation &amp; governance
subtitle: Decentralized without dysfunction.
css: page-foundation
---
{% assign content = site.data.content-foundation %}
<section class="section section--intro">
<div class="row">
<header class="section__header">
<div class="grid grid--full grid-small--columns grid--center grid--gutters">
<div class="grid__col grid__col--4">
<div class="section__description">{{ content.intro | markdownify }}</div>
</div>
<div class="grid__col grid__col--2">
<svg width="559" height="253" aria-labelledby="title">
<title>IPDB Governance</title>
<use xlink:href="/assets/img/sprite.svg#governance"></use>
</svg>
</div>
</div>
</header>
</div>
</section>
<section class="section section--background section--caretakers" id="caretakers">
<div class="row">
<header class="section__header">
<div class="grid grid--full grid-medium--columns grid--center grid--gutters">
<div class="grid__col grid__col--4">
<h1 class="section__title">{{ content.caretakers.title }}</h1>
<p class="section__description">{{ content.caretakers.description }}</p>
</div>
</div>
</header>
</div>
<div class="row features">
<div class="grid grid--full grid-small--half grid--gutters">
{% for feature in content.caretakers.features %}
<div class="grid__col">
<div class="feature">
<svg class="feature__image" width="298" height="220" aria-labelledby="title">
<title>IPDB Governance</title>
<use xlink:href="/assets/img/sprite.svg#distributed"></use>
</svg>
<h3 class="feature__title">{{ feature.title }}</h3>
<p class="feature__description">{{ feature.description }}</p>
</div>
</div>
{% endfor %}
</div>
</div>
<div class="row caretakers-current">
<div class="grid grid--full grid-medium--columns grid--center grid--gutters">
<div class="grid__col grid__col--4">
<h2 class="section__title">{{ content.caretakers.members.title }}</h2>
<p class="section__description">{{ content.caretakers.members.description }}</p>
</div>
</div>
{% include caretakers.html %}
</div>
<footer class="row">
<footer class="section__actions">
<a href="mailto:{{ site.data.contact.email_caretakers }}?subject=Becoming a caretaker" class="button button--text">Become a caretaker</a>
</footer>
</footer>
</section>
<section class="section section--board" id="board">
<div class="row">
<header class="section__header">
<div class="grid grid--full grid-medium--columns grid--center grid--gutters">
<div class="grid__col grid__col--4">
<h1 class="section__title">{{ content.board.title }}</h1>
<p class="section__description">{{ content.board.description }}</p>
</div>
</div>
</header>
</div>
<div class="row">
{% include board.html %}
</div>
</section>
<section class="section section--vision section--border" id="vision">
<div class="row">
<div class="grid grid--full grid-medium--columns grid--center grid--gutters">
<div class="grid__col grid__col--4">
<header class="section__header">
<h1 class="section__title">{{ content.vision.title }}</h1>
<p class="section__description">{{ content.vision.description }}</p>
</header>
</div>
</div>
</div>
<div class="row">
<div class="grid grid--full grid-medium--columns grid--gutters">
<div class="grid__col grid__col--2">
<figure class="feature__image">
<svg>
<use xlink:href="/assets/img/sprite.svg#starbase-towers"></use>
</svg>
</figure>
</div>
<div class="grid__col grid__col--4">
{{ content.vision.text | markdownify }}
</div>
</div>
</div>
</section>

View File

@ -1,19 +0,0 @@
---
layout: page
title: Satzung
subtitle: Satzung des Interplanetary Origins e.V.
narrow: true
language: de
alternate:
- language: en
link: /foundation/articles/
---
<div class="alert alert--info">
This document is also available in <a href="/foundation/articles/">English</a>.
</div>
*In Arbeit...*

View File

@ -4,6 +4,18 @@ layout: base
front_page: true
css: page-front
redirect_from:
- /foundation/
- /foundation/articles/
- /foundation/satzung/
- /foundation/bylaws/
- /docs/
- /jobs/
- /privacy/
- /terms/
- /faq/
- /canary/
---
{% assign content = site.data.content-front %}
@ -20,7 +32,6 @@ css: page-front
<div class="grid__col grid__col--4">
<h1 class="hero__title">{{ content.hero.title }}</h1>
<h2 class="hero__description">{{ content.hero.description }}</h2>
<a class="hero__action button button--primary" href="#getstarted" data-scroll>{{ content.hero.action }}</a>
</div>
</div>
</hgroup>
@ -72,231 +83,20 @@ css: page-front
</div>
</header>
<section class="features">
{% for feature in content.intro.features %}
<div class="feature">
<div class="grid grid--full grid-small--half grid-medium--columns grid--center grid--gutters">
<div class="grid__col grid__col--2">
<figure class="feature__image">
<img src="/assets/img/{{ feature.image }}.jpg" srcset="/assets/img/{{ feature.image }}.jpg 1x, /assets/img/{{ feature.image }}@2x.jpg 2x" alt="{{ feature.title }}" width="400">
</figure>
</div>
<div class="grid__col grid__col--4">
<h1 class="feature__title">{{ feature.title }}</h1>
<div class="feature__text">{{ feature.text | markdownify }}</div>
{% if feature.list %}
<ul class="feature__list">
{% for item in feature.list %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</section>
<footer class="section__actions">
<a class="button button--primary" href="{{ site.signup.link }}">{{ site.signup.button }}</a>
<a href="" class="button button--text">Read IPDB Documentation</a>
</footer>
</div>
</section>
<section class="section section--background section--foundation">
<div class="row">
<header class="section__header">
<div class="grid grid--full grid-small--columns grid--center grid--gutters">
<div class="grid__col grid__col--4">
<h1 class="section__title">{{ content.foundation.title }}</h1>
<p class="section__description">{{ content.foundation.description }}</p>
</div>
<div class="grid__col grid__col--2">
<svg width="559" height="253" aria-labelledby="title">
<title>IPDB Governance</title>
<use xlink:href="/assets/img/sprite.svg#governance"></use>
</svg>
</div>
</div>
</header>
{% include caretakers.html %}
<footer class="section__actions">
<a href="/foundation/" class="button button--text">{{ content.foundation.button }}</a>
</footer>
</div>
</section>
<section class="section section--roadmap">
<div class="row">
<header class="section__header">
<div class="grid grid--full grid-medium--columns grid--gutters">
<div class="grid__col grid__col--4">
<h1 class="section__title">{{ content.roadmap.title }}</h1>
<p class="section__description">{{ content.roadmap.description }}</p>
</div>
</div>
</header>
</div>
<div class="roadmap">
<div class="row">
{% for step in content.roadmap.steps %}
{% assign status = step.status %}
<div class="roadmap__step is-{{ status }}">
<p class="roadmap__net">{{ step.net }}</p>
<p class="roadmap__target">{{ step.target }}</p>
{% if step.time %}<p class="roadmap__time">{{ step.time }}</p>{% endif %}
</div>
{% endfor %}
</div>
</div>
</section>
<section class="section section--background section--getstarted" id="getstarted">
<div class="row">
<header class="section__header">
<div class="grid grid--full grid-medium--columns grid--gutters">
<div class="grid__col grid__col--4">
<h1 class="section__title">{{ content.getstarted.title }}</h1>
<p class="section__description">{{ content.getstarted.description }}</p>
</div>
</div>
</header>
<div class="grid grid--full grid-medium--third">
{% for step in content.getstarted.steps %}
<div class="grid__col">
{% if step.link %}
<a class="getstarted" href="{{ step.link }}">
{% else %}
<div class="getstarted">
{% endif %}
<h2 class="getstarted__title">{{ step.title }}</h2>
<div class="getstarted__text">{{ step.text | markdownify }}</div>
{% if step.link %}
</a>
{% else %}
</div>
{% endif %}
</div>
{% endfor %}
</div>
<footer class="section__actions">
<a href="/docs/" class="button button--text">IPDB Documentation</a>
</footer>
<div class="getstarted-bigchaindb">
<div class="grid grid--full grid-small--half grid-medium--columns grid--center grid--gutters">
<div class="grid__col grid__col--2">
<figure class="feature__image">
<svg aria-labelledby="title">
<title>BigchainDB</title>
<use xlink:href="/assets/img/sprite.svg#feature-bigchaindb"></use>
</svg>
</figure>
</div>
<div class="grid__col grid__col--4">
<h1 class="feature__title">Want to send a transaction to IPDB right now?</h1>
<p class="feature__text">Create your first transaction quickly and easily on the BigchainDB Get Started page, or the art of crafting a perfect transaction.</p>
<a class="button button--text" href="https://www.bigchaindb.com/getstarted/">Send your first transaction</a>
</div>
</div>
</div>
<div class="getstarted-tools">
<div class="grid grid--full grid-small--half grid-medium--columns grid--gutters">
<div class="grid__col grid__col--2">
<h2 class="feature__title">Community Tools</h2>
</div>
<div class="grid__col grid__col--4">
{% for tool in content.getstarted.tools %}
<div class="tool">
<h3 class="tool__title">
<a href="{{ tool.link }}">{{ tool.title }}</a>
{% if tool.github %}
<a href="{{ tool.github }}" title="GitHub">
<svg class="icon" aria-labelledby="title">
<title>GitHub</title>
<use xlink:href="/assets/img/sprite.svg#icon-github"></use>
</svg>
</a>
{% endif %}
</h3>
<p class="tool__description">
{{ tool.description }}
</p>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</section>
<section class="section section--connect">
<div class="row">
<div class="grid grid--full grid-small--half grid--gutters">
<div class="grid__col">
<header class="section__header">
<h1 class="section__title">{{ content.connect.title }}</h1>
<p class="section__description">{{ content.connect.description }}</p>
</header>
</div>
<div class="grid__col">
<div class="social">
<h2 class="connect__title">{{ content.connect.follow_title }}</h2>
{% for item in site.data.contact.social %}
<a class="social-link" href="{{ item.link }}" title="{{ item.name }}">
<svg class="icon" aria-labelledby="title">
<title>{{ item.name }}</title>
<use xlink:href="/assets/img/sprite.svg#icon-{{ item.name | downcase }}"></use>
</svg>
</a>
{% endfor %}
</div>
<div class="connect connect--newsletter">
<h2 class="connect__title">{{ content.connect.newsletter_title }}</h2>
<p>{{ content.connect.newsletter_text }}</p>
{% include form-newsletter.html %}
</div>
</div>
</div>
<header class="section__header">
<h1 class="section__title">{{ content.connect.blog_title }}</h1>
</header>
<div class="connect connect--blog">
<h2 class="connect__title">{{ content.connect.blog_title }}</h2>
<div class="articles">
<div class="grid grid--full grid-small--half grid-medium--fourth grid--gutters">
{% for article in site.articles limit: 4 %}
{% for article in site.articles limit: 8 %}
<div class="grid__col">
<a class="article" href="{{ article.link }}">
<figure class="article__image" style="background-image: url('{{ article.image | escape | strip_html }}')"></figure>

View File

@ -1,11 +0,0 @@
---
layout: page
title: Jobs
narrow: true
---
# Jobs @ Interplanetary Database Foundation
We'll be adding job openings in the next few months. In the meantime, if you're interested in working with us, don't hesitate to reach out: [contact@ipdb.io](mailto:contact@ipdb.io)

View File

@ -1,53 +0,0 @@
---
layout: page
title: Privacy policy
narrow: true
---
*29 November 2016*
## Introduction
These policies apply to your use of this website and to information you submit through this website. Use of the IPDB network is subject to its own Terms of Service and Privacy Policy.
We collect and use information in accordance with the German Telemedia Act (Telemediengesetz) and (Bundesdatenschutzgesetz), or with your express consent. We do not knowingly collect personal information from children under 18 without permission from a parent or guardian.
## What information we collect and how we use it
We may log information about your visit to this site (your IP address, browser version, and so on) so we can improve the site and keep it secure.
If you submit information through the forms on this site, we will collect the information you submit. We may use that information to contact you or to improve IPDB.
## How we store information
We may use cloud service providers to store information. Information may be stored outside of the European Union, but we only use providers that comply with the US-EU [Privacy Shield](http://ec.europa.eu/justice/data-protection/international-transfers/eu-us-privacy-shield/index_en.htm). Right now we use the following providers, which each have their own privacy policies:
* Google Apps for email and internal document sharing ([Privacy Policy](https://www.google.com/policies/privacy/)).
* Mailchimp for mailing lists ([Privacy Policy](https://mailchimp.com/legal/privacy/)).
* 3Scale for the Test Network user portal ([Privacy Policy](https://www.redhat.com/en/about/privacy-statement)).
## How information is shared
We will not share or sell the identifiable personal information we collect or generate except as we explain in this section.
We may share personal information with BigchainDB GmbH, the company responsible for the development of the software IPDB runs on. This information will be used in accordance with the [BigchainDB Privacy Policy](https://bigchaindb.com/privacy) and our information sharing agreement with BigchainDB.
We may share non-personal or aggregate information, such as usage statistics for the site.
## Cookies
We only use one cookie: [Google Analytics](https://www.google.com/analytics/). It provides information about how you use the site so we can make it better. We respect the [Do Not Track](https://en.wikipedia.org/wiki/Do_Not_Track) header. You can block tracking cookies entirely by installing a browser add-on such as [Privacy Badger](https://www.eff.org/privacybadger) or [uBlock Origin](https://github.com/gorhill/uBlock).
## Updating or deleting your personal information
We will update or delete your personal information if you ask us to unless we are under a legal obligation to keep it. Just email us at privacy@ipdb.foundation.
## Legal requests
We may be required to disclose information to comply with the law or processes such as warrants or court orders. [Watch our canary](/canary/).
## Open door policy
We believe privacy policies should be easy to read and make sense to non-lawyers. If something isn't clear or if you have questions, email us at privacy@ipdb.foundation.

View File

@ -1,9 +0,0 @@
---
layout: page
title: IPDB Terms of Service
narrow: true
---
*Coming soon...*

View File

@ -36,15 +36,15 @@
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-eslint": "^8.0.1",
"babel-eslint": "^8.0.3",
"babel-preset-env": "^1.6.1",
"browser-sync": ">=2.10.0",
"concurrent-transform": "^1.0.0",
"critical": "^1.0.0",
"cross-spawn": "^5.1.0",
"del": "^3.0.0",
"eslint": "^4.10.0",
"eslint-config-ascribe": "^3.0.4",
"eslint": "^4.13.1",
"eslint-config-ascribe": "^3.0.5",
"eslint-plugin-import": "^2.8.0",
"gulp": "github:gulpjs/gulp#4.0",
"gulp-autoprefixer": "^4.0.0",
@ -61,7 +61,7 @@
"gulp-load-plugins": "^1.5.0",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.6.1",
"gulp-rev": "^8.0.0",
"gulp-rev": "^8.1.0",
"gulp-rev-replace": "^0.4.2",
"gulp-sass": "^3.1.0",
"gulp-sourcemaps": "^2.6.1",
@ -70,10 +70,10 @@
"gulp-util": "^3.0.6",
"js-yaml": "^3.10.0",
"request": "^2.83.0",
"stylelint": "^8.2.0",
"stylelint-config-bigchaindb": "^1.0.0",
"stylelint": "^8.4.0",
"stylelint-config-bigchaindb": "^1.2.0",
"stylelint-config-standard": "^18.0.0",
"uglify-es": "^3.1.6"
"uglify-es": "^3.2.2"
},
"engines": {
"node": ">=7.0.0"