Code Monkey home page Code Monkey logo

entangled's People

Contributors

bingyanglin avatar brianopedal avatar ed2k avatar francescolavra avatar howjmay avatar ifullgaz avatar jkrvivian avatar jserv avatar kuhlmannmarkus avatar muxxer avatar paulhandy avatar rajivshah3 avatar semenov-vladyslav avatar th0br0 avatar thibault-martinez avatar tsvisabo avatar yinghan-chen avatar zksadj 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

entangled's Issues

Logger facility

Currently, two logging facilities are being used in different branches.

  • https://github.com/embear/logger that turned out not being thread-safe so locks were added on top of it
  • A thread-safe logger facility that was made from scratch

This issue aims at merging the best out of the two current logger facilities

"Transaction" name clash in cppclient

Transaction is defined as a struct in cppclient (api.h) as well as a class in common/model (cpptransaction.h).
Although they are in different namespaces, it is impossible to use both non-namespaces names together in the same source file.
See api_json.cc for an example where the fully qualified name of the Transaction class was used.

Error code handling & setup

Methods that can fail should return an error code and take output targets as parameters.
We need to define the relevant error codes in an enum and make sure that existing code uses/returns them.

Node storage abstraction layer

Different deployment targets require different storage backends for a functioning IOTA node.
As such, we need to abstract the actual storage layer for higher-level (i.e. networking operations)

  • Design storage abstraction layer
    This can be as simple as
extern retcode_t iota_stor_store(const trit_array_p hash /* = key */, const trit_array_p value /* = tx data */);
extern retcode_t iota_stor_load(const trit_array_p hash /* = key */, trit_array_p into);

However, we also need to have a means of storing metadata (e.g. arrival time, consensus data, ...)

extern retcode_t iota_stor_metadata_store(const trit_array_p hash, const trit_array_p metadataKey, const trit_array_p value); 
extern retcode_t iota_stor_metadata_load(const trit_array_p hash, const trit_array_p metadataKey,  trit_array_p into); 

Questions:

  • Where and how is concurrency handled?
  • Do we need to store more than this? IRI has 5 different 'tables' or so
  • Implement storage abstraction layer
  • Do we need helper methods here? Probably for transaction stuff at the least.
  • Implement in-memory storage
  • Just do a std::unorderd_map?

Potential users:

  • TangleScope

Integrate unit test

In order to perform unit test, I consider to introduce Google Test. Which target would be the appropriate environment for unit tests to interoperate with? Mainnet with snapshot or testnet?

uint type not defined in OSX

In cclient/system.h line 19, type uint is not defined when compiling on OSX.
I suggest changing that to a more compatible type, such as uint32_t or uint64_t.

Atomic handle

Design / Implement macros to define atomic_handle_t types, that depends on a type, and its associated functions

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.