Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduction CYFS for Developers(Part2): Concept notes #132

Closed
streetycat opened this issue Mar 20, 2023 · 16 comments
Closed

Introduction CYFS for Developers(Part2): Concept notes #132

streetycat opened this issue Mar 20, 2023 · 16 comments
Labels
Docs Improvements or additions to documentation

Comments

@streetycat
Copy link
Collaborator

In this issue, I hope to collect various concept nouns learned

@streetycat streetycat added the Docs Improvements or additions to documentation label Mar 20, 2023
@streetycat
Copy link
Collaborator Author

streetycat commented Mar 20, 2023

FastResp/FastRequest

If the infomation is little, The Request will be carried by the handshake(SYN) packet directly to the remote. and the Responce will be carried by the handshake(ACK) packet to reply.

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 20, 2023

Zone

The devices owned by the same owner.It can be represented by its owner.

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 20, 2023

RootState

The tree build with ObjectMap, it records the data of one DecApp on the branchs or leafs. We can access the Objects with the path.

/--company
    |--departmentA
    |    |--Employee1
    |    |--Employee2
    |    |--...
    |--departmentB
    |    |--...
    |--...

RPath

In CYFS, application objects are stored in a tree structure, objects are mounted on branches or leaves, and the path of objects on the tree is called RPath.

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 20, 2023

Device

Any computer running a CyfsStack, it can be found and accessed by other devices in CYFS.

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 20, 2023

OOD

The central device of a zone. It builds a star network with other devices, It assists other devices in the same zone to communicate with the other zones. And it is the centralized storage of data in the zone, running as a service(gateway) in http.

Runtime

An execution environment for Cyfs, different from OOD, It's running on an end device as a client for OOD. It's a process named cyfs-runtime running in the OS. In most time, runtime runs with browsers that support cyfs

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 20, 2023

MetaChain

It is a blockchain system that maintains the consensus of each node in the CYFS network.Its implementation is not yet complete, just a conceptual version?

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 20, 2023

People

An object describing a natural person entity, It corresponds to a key-pair, and it's maintained by the wallet.It's the owner of most objects.

@streetycat streetycat changed the title Concept notes Introduction to CYFS Developers(Part1): Concept notes Mar 21, 2023
@streetycat streetycat changed the title Introduction to CYFS Developers(Part1): Concept notes Introduction to CYFS Developers(Part2): Concept notes Mar 21, 2023
@streetycat
Copy link
Collaborator Author

streetycat commented Mar 21, 2023

DECApp

It is a decentralized application developed by application developers themselves. They are installed on the user's OOD, and usually consist of a server running on the OOD and a client(or web) running on the runtime.

@streetycat streetycat changed the title Introduction to CYFS Developers(Part2): Concept notes Introduction CYFS for Developers(Part2): Concept notes Mar 21, 2023
@streetycat
Copy link
Collaborator Author

streetycat commented Mar 21, 2023

Data name

Any Data is named with it's hash, any modification will change its name. This is a key design, it will ensure that the data you reference has not been tampered with.

Named Data

Any data named in this way is called Named Data.

Named Object

Data is divided into structured data and unstructured data, and structured data is called Object, Any Object named in this way is called Named Object.

ObjectId

The name of a Named Object is ObjectId.

The calculation method is detailed here

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 22, 2023

SN

Super Node. It's service that assists devices deployed in NAT to communicate with each other. In CYFS, anyone can deploy a SN server, and anyone can freely choose the appropriate SN server.Both parties complete the transaction through SN service contract and service certificate.

@streetycat
Copy link
Collaborator Author

PN

Proxy Node. They are used as proxies to transfer data when both communication devices cannot complete a direct connection. As the SN service, anyone can deploy a PN server, and anyone can freely choose the appropriate PN server.Both parties complete the transaction through PN service contract and service certificate.

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 23, 2023

Group

It is an abstract description of an organization formed by a group of people in the real world because they share common goals or hobbies.

A Group can be the owner of a object,like People and Device.

@streetycat
Copy link
Collaborator Author

Entitled object

An object is said to be entitled object if it can provide proof of the authenticity of another object.It can be the owner of an object to own it.A common method of proof is the signature, so, most entitled object contains a key-pair,for example:People and Device.but a Group contains many People as the members, Its proof requires the signature of a majority of members.

Owned object

An object is said to be owned object if it's created with a owner, most public object is owned object,Any object of external origin without owner and signature is untrusted.

@streetycat
Copy link
Collaborator Author

streetycat commented Mar 23, 2023

NON

Named Object Network, the storage network for all Named Object.

NOC

Named Object Cache, the storage in local device for all Named Object that has accessed before.

NDN

Named Data Network, the storage network for all Named Data.

NDC

Named Data Cache, the storage in local device for all Named Data that has accessed before.

@jing-git
Copy link
Collaborator

LN
Local Node: The party initiating the action.

RN
Remote Node: The party receiving the request.

Stream
Streaming transport protocol, similar to TCP connection, it provides full-duplex, sequentially reliable data transmission for LN and RN.

Datagram
Packet transport protocol, similar to UDP, it is a connectionless transport protocol that allows sending and receiving of datagrams without establishing a connection.

Tunnel
A bidirectional, full-duplex logical channel that connects two nodes without directionality, where higher-layer stream, datagram, and NDN protocol data are transmitted over the tunnel.

@jing-git
Copy link
Collaborator

NON

Named Object Network, the storage network for all `Named Object`.

NOC

Named Object Cache, the storage in local device for all `Named Object` that has accessed before.

NDN

Named Data Network, the storage network for all `Named Data`.

NDC

Named Data Cache, the storage in local device for all `Named Data` that has accessed before.

Chunk

Unstructured binary data transported over NDN. A file or large data block can be divided into N fixed-size sub-blocks, which are called chunks or chunk data.

ChunkId

The Object ID of a Chunk includes the hash and length of its data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Docs Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants