Giter Club home page Giter Club logo

d7024e's Introduction

D7024E

Kademlia lab

d7024e's People

Contributors

domilz avatar nalle631 avatar

Watchers

 avatar

d7024e's Issues

Network joining

Given the IP address, and any other data you decide, of any single node, a node must be able to join or form a network with that node.

M4

Unit testing. You must demonstrate that the core parts of your implementation work as expected by writing unit tests. Note that unit tests never cross process boundaries, which means that they do not send network messages, read or write files, require user input, etc. Unit tests prove that the internal constructs of an application behave as expected, such as that the calculation of XOR distances is correct, or that contacts are inserted at the correct places in buckets, and so on. See Appendix A for a brief tutorial. We expect a test coverage of at least 50%

M6

Lab report. You must continously work on and update a lab report. The required contents of the report are outlined later in the Method section.

M2

Object distribution. The networks your nodes form must be able to manage the distribution, storage and retrieval of data objects, as described in the Kademlia paper.

Pinging

Implement the PING message

Storing objects

When part of a network, it must be possible for any node to upload an object that will end up at the designated storing nodes.

Put

Takes a single argument, the contents of the file you are uploading, and outputs the hash of the object, if it could be uploaded successfully.

M3

Command line interface. Each node must provide a command line interface.

Node lookup

When part of a network, each node must be able to retrieve the contact information of any other node in the same network.

M5

Containerization. You must be able to spin up a network of nodes on a single machine.
The network must consist of at least 50 nodes, each in its own container. You may spin
up and take down the network any way you like, but you will likely save a lot of time if you either
use a script or an orchestration solution to start and stop the network.

Exit

Terminates the node.

Finding objects

When part of a network with uploaded objects, it must be possible to find and download any object, as long as it is stored by at least one designated node.

Get

Takes a hash as its only argument, and outputs the contents of the object and the node it was retrieved from, if it could be downloaded successfully.

M1

Network formation. [5p]. Your nodes must be able to form networks as described in the KademLia paper. Kademlia is a protocol for facilitating Distributed Hash Tables (DHTs).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.