The following constraints apply to each node type:
- Channel:
Size
,ParentHash
,ContentType
are not needed FILE, DIR, SUBCHANNEL, ENTRY
require correctParentHash
and correct PermissionsSUBCHANNEL
have OPTIONALSize
Permissions are as follows:
Owner
has full accessAdmins
members can create everything except changing theOwner
property of a nodePosters
can create ONLYEntries
,DIR
,FILE
- Guests are only allowed to create
OTHER
nodes, BUT with fees applied - Guests MAY act as Posters IF-AND-ONLY-IF, there is a wildcard
*
in thePosters
field which simply means everyone can post.
Structure constraints:
CHANNEL
can not be nested in any other typesSUBCHANNEL
can be within aCHANNEL
orSUBCHANNEL
onlyENTRY
can be withinCHANNEL
orSUBCHANNEL
DIR and FILE
can be within only ENTRYOTHER
can be within anENTRY
ONLY
Filefilego aims to provide a user friendly interface with visual feedback including:
- Logos/Favicons (Channel and Subchannel); The convention is to use a file named "ffg_favicon.png" to set the node's icon
- Channel and Subchannel Cover photos; a file named "ffg_cover.png" to set the cover of the container node
- Thumbnails for Entries which includes a limited number of gallery items; normal files(FILE) with attributes ("thumb=1"), ("gallery=1", "gallery=2" ... ) which means a thumbnail will be used and for the gallery 2 other images
Full nodes MUST NOT apply any download restrictions on these utilities. However there must be restrictions regarding file size to prevent abuse.
cd filefilego
protoc --proto_path=node --js_out=import_style=commonjs,binary:build messages.proto
to convert to time.Time:
ptypes.Timestamp(myMsg.Timestamp)
to get current timestamp:
ptypes.TimestampNow()
There is a docker file which creates an image with the current compiled cli. Just make sure to build the image using:
docker build . -t ffg
and then run a container using:
docker run -it ffg --node_identity_passphrase=admin --storage_token="admintoken" --addr=0.0.0.0 --http --http_addr=0.0.0.0 --bootstrap_nodes="/dns/host.docker.internal/tcp/10209/p2p/16Uiu2HAmScD2pAgjQxQLpfgod2bfZyajmJR4J9rfJ11jJq7w66LX"
Using docker-compose we setup 2 full nodes and 1 verifier which connect to the host running an instance of filefilego cli.
docker-compose up
docker-compose down
to see logs of a specific container:
docker-compose logs -f node1