Skip to content

Commit

Permalink
Merge pull request #340 from pipermerriam/piper/skinny
Browse files Browse the repository at this point in the history
POC - Simple Key/Value DHT
  • Loading branch information
pipermerriam committed Mar 4, 2021
2 parents 341e84e + e768023 commit 55c3e85
Show file tree
Hide file tree
Showing 64 changed files with 581 additions and 10,321 deletions.
155 changes: 0 additions & 155 deletions ddht/tools/benchmark/partials.py

This file was deleted.

7 changes: 1 addition & 6 deletions ddht/tools/driver/abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
SessionAPI,
)
from ddht.v5_1.alexandria.abc import (
AdvertisementDatabaseAPI,
AlexandriaClientAPI,
AlexandriaNetworkAPI,
ContentStorageAPI,
Expand All @@ -28,11 +27,7 @@


class AlexandriaNodeAPI(ABC):
commons_content_storage: ContentStorageAPI
pinned_content_storage: ContentStorageAPI

local_advertisement_db: AdvertisementDatabaseAPI
remote_advertisement_db: AdvertisementDatabaseAPI
storage: ContentStorageAPI

@property
@abstractmethod
Expand Down
29 changes: 4 additions & 25 deletions ddht/tools/driver/alexandria.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from contextlib import AsyncExitStack
import sqlite3
from typing import AsyncContextManager, AsyncIterator, Collection, Optional, Tuple

from async_generator import asynccontextmanager
Expand All @@ -16,10 +15,8 @@
)
from ddht.v5_1.abc import NetworkAPI
from ddht.v5_1.alexandria.abc import AlexandriaClientAPI, AlexandriaNetworkAPI
from ddht.v5_1.alexandria.advertisement_db import AdvertisementDatabase
from ddht.v5_1.alexandria.broadcast_log import BroadcastLog
from ddht.v5_1.alexandria.client import AlexandriaClient
from ddht.v5_1.alexandria.content_storage import MemoryContentStorage
from ddht.v5_1.alexandria.content_storage import ContentStorage
from ddht.v5_1.alexandria.network import AlexandriaNetwork


Expand All @@ -28,15 +25,7 @@ class AlexandriaNode(AlexandriaNodeAPI):

def __init__(self, node: NodeAPI) -> None:
self.node = node
self.commons_content_storage = MemoryContentStorage()
self.pinned_content_storage = MemoryContentStorage()
self.local_advertisement_db = AdvertisementDatabase(
sqlite3.connect(":memory:"),
)
self.remote_advertisement_db = AdvertisementDatabase(
sqlite3.connect(":memory:"),
)
self.broadcast_log = BroadcastLog(sqlite3.connect(":memory:"))
self.storage = ContentStorage.memory()
self._lock = NamedLock()

@property
Expand All @@ -63,10 +52,7 @@ async def client(

@asynccontextmanager
async def network(
self,
network: Optional[NetworkAPI] = None,
bootnodes: Collection[ENRAPI] = (),
max_advertisement_count: int = 32,
self, network: Optional[NetworkAPI] = None, bootnodes: Collection[ENRAPI] = (),
) -> AsyncIterator[AlexandriaNetworkAPI]:
network_context: AsyncContextManager[NetworkAPI]

Expand All @@ -79,14 +65,7 @@ async def network(
async with self._lock.acquire("AlexandriaNode.network(...)"):
async with network_context as network:
alexandria_network = AlexandriaNetwork(
network=network,
bootnodes=bootnodes,
commons_content_storage=self.commons_content_storage,
pinned_content_storage=self.pinned_content_storage,
local_advertisement_db=self.local_advertisement_db,
broadcast_log=self.broadcast_log,
remote_advertisement_db=self.remote_advertisement_db,
max_advertisement_count=max_advertisement_count,
network=network, bootnodes=bootnodes, storage=self.storage,
)
async with background_trio_service(alexandria_network):
await alexandria_network.ready()
Expand Down

0 comments on commit 55c3e85

Please sign in to comment.