1
0
Fork 0
mirror of https://github.com/anyproto/docs.git synced 2025-06-08 05:47:05 +09:00

GitBook: [#181] No subject

This commit is contained in:
Charlotte Chiang 2022-09-28 20:41:32 +00:00 committed by gitbook-bot
parent 82a8e4fcb4
commit 89c7067cff
No known key found for this signature in database
GPG key ID: 07D2180C7B12D0FF
20 changed files with 44 additions and 77 deletions

View file

@ -4,12 +4,12 @@ To keep bandwidth and storage usage low but provide a fast experience, Anytype d
**Files** and **Videos** are downloaded **on-demand**. For example, on mobile devices, it's only when you choose to **play** the video that it will begin to download and save on your device. It also works as a cache. For example, when watching 10% of movies, Anytype may preload and store 30%. So if you are streaming or frequently using a large file, it will be taken from your device storage.
**Files** are fully downloaded when you press download and get "cached" on your device. 
**Files** are fully downloaded when you press download and get "cached" on your device.
{% hint style="info" %}
Working with cache is not yet available and will be implemented in the next release
{% endhint %}
{% content-ref url="../features/storage-and-deletion.md" %}
[storage-and-deletion.md](../features/storage-and-deletion.md)
{% content-ref url="storage-and-deletion.md" %}
[storage-and-deletion.md](storage-and-deletion.md)
{% endcontent-ref %}

View file

@ -1,25 +0,0 @@
# How to add relation to multiple objects
### **Using a Type**
Let's look at an example. Say you need to add a new relation, `Color,` to your **Type** `Cat`. And you already have 10 objects of this Type.
1. You need to open [library.md](../features/library.md "mention")
2. Find and open the [Broken link](broken-reference "mention") `Cat`
3. Add a new [relation.md](../self-onboarding/relation.md "mention") `Color` there.
When you open any object `Cat`, you will find `Color` in the relations view and `/` menu.
{% hint style="warning" %}
You cannot edit the default relations in types\*\* created by Anytype\*\*. But you can use [set.md](../self-onboarding/set.md "mention"), which can be used to create a relation in existing objects.
{% endhint %}
### **Using a Set**
Say you need to add `Related` to all your `Tasks`. Unfortunately, you can't change the default relations for this Type.
1. [#create-a-set](../self-onboarding/set.md#create-a-set "mention") with type Task
2. Add a new column. Settings → Relations → \*\*+ \*\*→ `Related`
3. Each object in the Set will now show this relation. Also, see will see at as **suggested** in each object.
![](<../.gitbook/assets/test (1).gif>)

View file

@ -1,9 +0,0 @@
# How to restore my account?
### Recovery
Anytype does not store or know your private keychain passphrase, so it is **impossible to recover** the accounts whose passphrase has been lost.
{% hint style="warning" %}
Please keep your passphrase secure and saved as it is the only way to access information inside Anytype.
{% endhint %}

View file

@ -0,0 +1,33 @@
# Privacy & Security
## Privacy
All of your data is private in Anytype alpha. Only you have the encryption keys. No one at Anytype can decrypt your data. So if you lose your phrase, we cant restore access. Likewise, no one in Anytype or anyone else can read the content of your Anytype.
### Keychain
Your keychain phrase is the login and passphrase at the same time.
This mnemonic represents your master key generated on the signup, similar to Bitcoin. Changing it is impossible or automatically migrating all your data to a new key if the current one is compromised or forgotten.
We cant do anything about it but create a new account and import all the data from the markdown backup. The invitation key can be used only once. After signing up, your keychain becomes stored in the OS wallet application, so the app can log in automatically when startup.
{% hint style="info" %}
We are thinking about logic to provide possibilities like recovery, migration, and keychain changing with the second factor in the future.
{% endhint %}
### Local Anytype data folder itself is not encrypted
Anytype stores data in a non-encrypted way locally. We have a prerequisite that the users machine is non-compromised and trusted. Basically, if a device is compromised, there are plenty of attack vectors, including RAM scanning and passphrase keylogging, which is useless. We will definitely make additional encryption later. **For now, we recommend turning HDD encryption and device password on.**
### Tech details
There are some technical details on encryption and data storage:
* Anytype stores changes for each object youve created
* Every objects change has 2 encryption layers with different keys.&#x20;
* the First layer is used to connect changes within an object (e.g. all this encrypted data belongs to the object with id \<abc>)
* Second layer is used to encrypt the actual data. We using AES with stream **encryption** with CFB mode
* When you create a new change for an object, we periodically send it to our backup node(with only the first-layer key). More info about sync [here](syncing-and-p2p.md).
* Anytype backup nodes have access to the first layer key, so it can group changes for the object and send them in one pack when you want to restore your data
* Anytype backup nodes HAVE NO access to the second layer key, so it cant read the actual changes data

View file

@ -1,10 +0,0 @@
# Relation in practice. Can they act like properties or fields in databases?
![Block Relation in different Objects linking them with each other](../.gitbook/assets/55634384f007cf8c9a5e9a4dbc97ed15.png)
[relation.md](../self-onboarding/relation.md "mention") is the foundation of our graph structure. They connect your objects into the knowledge graph. But, you can use them for general purposes. For example:
* You can also use relation to set some «primitive» value like a date, a tag, a status, an email, or a phone number. Later we will update the system where even such values might be presented as Objects.
* Relations can be shown as columns in a “database” / “table” view by using [set.md](../self-onboarding/set.md "mention"). So you can use them as properties in Notion for such case.
* Relations are global. You can change the name, and you will update it everywhere.
* You can add any relation to any object using Blocks, Set or Objects relation view. Take a look on [#adding-relations](../self-onboarding/relation.md#adding-relations "mention")

View file

@ -0,0 +1,47 @@
# Storage & Deletion
## Storage
Anytype is Offline first; hence, all data you create will be stored locally first. After that, the data is synced to the backup node and your devices for redundancy.
We use a private IPFS network and [ThreadDB](https://docs.textile.io/threads/) to handle storage. It is a Peer-To-Peer file system that facilitates decentralized data storage across devices. Furthermore, we use the deduplication feature to reduce storage. E.g. If the same picture is uploaded three times, there is only one image copy stored to reduce storage consumption.
{% hint style="info" %}
You can read more about IPFS here: [we-are-using-ipfs.-what-is-that.md](../faqs/we-are-using-ipfs.-what-is-that.md "mention")
{% endhint %}
### Media
Media files are not directly downloaded in overall syncing to save bandwidth. Instead, when that file is requested, it is streamed to your device from the backup node or your devices on the network. E.g. If you have a 4k Video, it will be streamed from the backup node or P2P devices to your device.
So when you open an object with an image, it downloads. When you press play on video & audio, it begins to download. After that, this file will be stored in the application cache.
## Deletion
![Complete deletion in Bin](<../.gitbook/assets/Screenshot 2021-11-02 at 16.25.23.png>)
At the moment you can delete only the [fundamental-concepts.md](../fundamental-concepts.md "mention") that you create inside Anytype. At first, you can move them to a bin that will remove them from navigation. Secondly, you can remove them completely from all devices. All your devices will also delete them when getting online.
{% hint style="warning" %}
This action is irreversible, so please be careful.
{% endhint %}
### Media
{% hint style="warning" %}
Objects like Media and those with Anytype (Types, Relations) might be deleted in further releases.
{% endhint %}
You can delete all the content via the clear cache option in iOS and Android. This will remove all the data altogether and force the app to sync once again entirely. Since the media download works on-premise (take a look on[#media-1](storage-and-deletion.md#media-1 "mention")), you will remove all cached media and clear some storage.
## Root Folder
The Anytype Root Folder is a variable based on the OS is where all your local data is stored. Currently, it is not possible to change the location of this folder. However, this functionality will be added at a later date.
## Filesystem integration
Anytype does not have a way to reference files from the OS files system. So all the files are getting copied when you drop media and files inside Anytype. We will introduce this feature later.
{% hint style="success" %}
By the way, you can check our roadmap in the [Community Forum](https://community.anytype.io/t/release-plan-a-general-roadmap/1283)
{% endhint %}

54
faqs/syncing-and-p2p.md Normal file
View file

@ -0,0 +1,54 @@
# Syncing & P2P
All your data primarily syncs to the encrypted backup node in the current alpha. Therefore, all data storage is at **no cost** to you. The application is always connected to the backup node and cannot be disconnected.
#### Local backups
Anytype is offline-first, and our backup nodes are still in early testing (we can't guarantee data recovery in 100% cases yet), it may be a good idea to do a regular backup of your Anytype folder (bottom-right question mark → Status → Folder path) to some safe place or with markdown Export.
#### Page history
We have a history of the document changes that you can use you lose some data and restore previous versions. So the overall risk of losing some data because of the bug is marginal/non-existent. The only part that we can't guarantee is total recovery from our backup node. It's still in testing mode, an Alpha.
### Syncing. How does it work?
All objects are syncing separately. You can have 1 object in the actual state while another is downloading. Every object syncs with all historical changes being merged together. You can work being offline, with different devices different document states.
The app will transfer small chunks (those changes) of data that will build the document back in forth to devices and backup nodes. So when you open the document, not in its actual state. You just need to wait.
Later we will introduce more features bringing transparency into syncing.
### P2P
We transfer objects directly between devices and backup nodes. That means that you can use the app on several devices in one network without connecting to the world wide web. Interconnections trying to establish with all machines being used with time intervals and if connected then checking changes, transfer data online. We can't broadcast every used device every second, so it can take some time to retrieve data from another device (restarting the app can help).
### Status
![](<../.gitbook/assets/Screenshot 2021-11-05 at 16.27.07.png>)
* Status `Synced` is shown when: The app is backed on one node at least. If the app retrieved that no changes were made
* Status `Syncing…` is shown when: For backup node: upload, download, pinning of files. For devices (direct interconnection): upload, download
* Status `No connection` is shown when: Anytype node doesn't connect. You can send the data directly between devices.
* Status `Not syncing` is shown when: The app fails to sync. It can be network problems or bugs.
* Status `Preparing...` is shown when: Warming up and initializing synchronization.
Overall status (for an object):
* If the Object is not fully synced with some device or backup node and something is syncing (like device), → then it is in `Syncing…` state
### Troubleshooting
If you encounter an error during sync:
![](<../.gitbook/assets/image (2).png>)
You will need to send us the «Object diagnostics» for debug. They can be found in the menu bar under the file option. «Object diagnostics» are **confidential**. Please send it to support@anytype.io.
## Future Plans
In the future, we plan on giving users more control over the sync functionality. Some of the features that we are going to implement:
* [ ] Sync Control Options
* [ ] The Precise status of each Object
* [ ] The Naming of Sync Devices
* [ ] Ability to toggle sync for specific pages and objects

View file

@ -1,9 +0,0 @@
# What is the difference between the alpha and beta versions of Anytype?
The Anytype team considers the product in an alpha state until all initially planned features have been implemented. Additionally, a higher number of bugs and a greater chance of instability is expected during the Alpha.&#x20;
Given this fact, we advise you not to use the Alpha for any critical purposes and be prepared for the possibility of data loss, no matter how rare. In practice, over more than a year of alpha testing, all instances of data loss have been user error from losing their keychain phrase.&#x20;
When the product is feature complete, and we begin focusing on bug fixing and polish, we will make the beta available.
If you're interested in participating, please continue submitting [the form](https://anytype.typeform.com/early-access?typeform-source=anytype.io#source=documentation).