Coder Social home page Coder Social logo

libcage's Introduction

1. What?
    libcage is NATs free DHT library which implements Kademlia. This enables
    decentralized key-value store and peer-to-peer communications via NATs.
    Even if both peers are under NATs, peers can communicate with each other.

2. How to compile

    libcage depends on:
        libevent (http://www.monkey.org/~provos/libevent/)
        boost (http://www.boost.org/)

    and uses C++ compiler and OMake (http://omake.metaprl.org/index.html).
    So, please install above libraries and applications before compiling.

    You can then compile as:

    $ cd libcage
    $ omake


    libcage uses libevent as a default event library. If you'd like to use
    libev instead of libevent, please use the EV option when compiling.

    $ omake EV=TRUE


    The DEBUG option enables debugging which passes -O0 and -g flags to the
    compiler.

    $ omake DEBUG=TRUE


    If you want to debug RDP, please add a -DDEBUG_RDP flag to the CXXFLAGS
    option. When enabled DEBUG_RDP, libcage outputs RDP packets to the standard
    error.

    $ omake CXXFLAGS=-DDEBUG_RDP

3. Install
    If you want to install to /usr/local, please type:
    $ omake install

    If you want to install to any other places, plese use PREFIX option.
    For example, to install to /opt/local, please type:
    $ omake install PREFIX=/opt/local

4. Uninstall
    If you have installed to /user/local, please type:
    $ omake uninstall

    If you have installed to any other places, plese use PREFIX option.
    $ omake uninstall PREFIX=/opt/local

    You can uninstall libcage as:
    # rm -rf /usr/local/include/libcage
    # rm /usr/local/lib/libcage*

libcage's People

Contributors

ytakano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libcage's Issues

put TTL in seconds

The TTL for put seems to be measured (by timestamp comparsion) in seconds rather than milliseconds
(as used in the examples).

There should be documentation for that.

Long messages result in segfault

If one sends a long (38325 bytes in my case) message directly to a peer it results in a segmentation fault
at the memcpy in dgram::push2queue

 p = pbuf->append(len);
 memcpy(p, msg, len);

The size check in pbuf->append results in p = NULL which is not checked.

I'm not sure how to deal with this so I'm not supplying a patch, sorry.

TCP file

Hi,
if i want to transfer files,what i do ? and i not find TCP sock in this

Getting Assertion failed.

Hi,

When I tried to run your test code with 10000 nodes, I got it aborted and the message "event.c:878: timeout_next: Assertion 'tv->tv_usec >= 0' failed"

Any idea of this problem?

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.