HelloZeroNet / HelloZeroNet/ZeroNet

POW content signing

Đang mở
#1,815 13 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
JavaScript
Star
18.8k
Fork
2.3k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

# Why bother

Right now we have 0 defenses against spamming, maybe this could be useful
Also this is NOT meant to exclude the possible damage of forcing POW as some users are mobile based and will struggle and lack the capability to legitimately post while the spammer on a mid tier rig can easily blast through POW
This is mostly a barrier of sort, not meant to be the only line of defense against spamming but to be used in combination with other tools..

(FYI: i used the word POW signing to refer to computing a hash that matches requirement)
Possible examples:
# POW each publish
This is a simple system where each time you want to publish the data also need to be POW backed to publish, actually it dosent stop spammer, they could choose to spam everything in one go.

# POW for file size
There should be a "POW sign" this to unlock XYZ more space
EDIT: also there should be ways to have diffrent POW requirements, between certs providers and anonymous certs #1812
Example in contents.json for users:
```
POW Sizegate signing:
0byte: /^0000.*$/ (4 zeros hash)
50mb: /^0000.*$/ (4 zeros hash)
100mb: /^00000.*$/ (5 zeros hash)
500mb: /^000000.*$/ (6 zeros hash)
1gb: /^0000000.*$/ (7 zeros hash)
*1gb: /^00000000.*$/ (8 zeros hash)
```
In order to even do your first post you need a 4 zero hash check(explained by the 0 byte).
Each time your data size reaches a new "milestone" you also need to create POW with matching regex.
The *1gb means each time you reach a new multiples of 1 gb you also must sign it, say you reached 3 gb, then you must sign it 3 times.

for example in the user's content.json
```
size sign:
0byte: (data that when combined will result in hash matching regex)
```

the hash match function would be something like
hash(auth address+size+site address+data)
size and site address may be optionally excluded by owner's will, so that a hash can be signed once and used at elsewhere, and allow users to precompute huge hashes only based on their auth address

# Other ways?
Only other ways i can think of is signing for every individual "entity" which depends on application, like zerome and zerotalk each have their own individual entity
It would sure be nice to be able to make each entity to require signing but i cant see a way without huge complication in the json structure of each file
Yes it's possible to do it front ended rather then at the network level, sure it hides the post but still dosent negate the fact people can spam and waste other's disk space

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.