-
Notifications
You must be signed in to change notification settings - Fork 451
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
PhD chapter?: Long-enduring Leaderless Circular Economy (MicroDAOs) #7452
Comments
Minimal Viable DAO
-->
--> DAOs:
|
MeritRank incremental deploymentNobody has ever realised a robust decentralised trust framework. After trying since 2006 (discussions pre-date the existance of Github, see 2013 discussion) we have the MeritRank algorithm for reputation and trust. We need to deploy this, make it feature complete, and use it for "Justin Bieber is Gay" tag spam. Limited protocol evolution is unsolved. Our network is forked for each new feature or minor protocol change. That needs to change. We currently do not have a mechanism inside IPv8 for easy and light weight versioning. We really want to avoid complex versioning negotiation between client. Versioning is strictly an increasing integer. Each integer is associated with a certain set of supported immutable message formats. Message deprecation is not supported. Release planning:
Current IPv8 versioningThe IPv8 message A third mechanism in included inside the My question to everybody and especially the founder of IPv8 is: what should we do? First, please read the scientific related work on this: RFC 9170 Long-Term Viability of Protocol Extension Mechanisms. The above will be painful, because we are now deeply integrating phd science with bug-free development 😃 |
We have easy and lightweight versioning in IPv8. I'll give some examples below of what already exists, based on what I've seen so far ITT (we even already support message deprecation). I consider protocol-level versioning mostly solved. So on that front, rather than make standard 15, I'd advise to use what is already available. That said, nobody has ever dared to make the boilerplate to bridge the behaviors of two peers that use two different versions: bridging protocols is easy, bridging behavior is extremely difficult. It's probably worth looking at the behavior instead. Examples of existing solutionsRegarding versioning of communities and peer search/reconnect, I have two examples by @egbertbouman:
https://github.com/Tribler/py-ipv8/blob/master/ipv8/messaging/anonymization/pex.py#L9-L17 PEX_VERSION = 1
class PexCommunity(Community):
def __init__(self, *args, **kwargs):
infohash = kwargs.pop('info_hash')
self.community_id = (int.from_bytes(infohash, 'big') + PEX_VERSION).to_bytes(20, 'big')
self._prefix = b'\x00' + self.version + self.community_id
super().__init__(*args, **kwargs)
async def connect_peer(self, mid, peer=None):
# If a peer is provided, we will first try to ping the peer (to see if it's connectable).
# This could potentially save an expensive DHT lookup. Regarding the "rendezvous" design above, all (Python) IPv8 users send signed introduction requests that includes an https://github.com/Tribler/py-ipv8/blob/master/ipv8/community.py#L218-L225 payload = IntroductionRequestPayload(socket_address,
self.my_estimated_lan,
self.my_estimated_wan,
True,
u"unknown",
global_time,
extra_bytes,
supports_new_style=new_style) The response to this message, is another signed message that includes the same |
Update:
|
Cardinal challenge: background |
Public Brainstorming Issue
The text was updated successfully, but these errors were encountered: