Giter Site home page Giter Site logo

webbananaunite / overlaynetwork Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 463 KB

overlayNetwork is a iOS library as Peer-to-Peer Overlay Network Communicate System, based on Distributed Hash Table Lookup Protocol MIT Laboratory's Paper named Chord.

Home Page: https://www.webbanana.org

License: MIT License

Swift 98.35% Objective-C 0.37% Objective-C++ 0.61% C 0.67%
chord overlay-network peer-to-peer cloudcomputing ios protocol-oriented-programming swift ddd-patterns onion-architecture bsd-sockets socket socket-programming swift-package-manager swift5 swiftpackage carthage cocoapods nat-hole-punching nat-traversal tcp-ip

overlaynetwork's Introduction

BlockChain Library Suite

日本語

about blocks

blocks is a iOS library as introduce BlockChain System to your Apps, based on Satoshi Nakamoto's Paper, for various purpose (*** Exclude exchangeable digital currency in cryptocurrency exchange ***) iOS App.

Characteristically, blocks is pre-contained Activities in Social System (Government, Public, Private Sectors) as Birth Registration, Residential Record, Guarantor.

It is depend on overlayNetwork library.

about overlayNetwork

overlayNetwork is a iOS library as Peer-to-Peer Overlay Network Communicate System, based on Distributed Hash Table Lookup Protocol MIT Laboratory's Paper named Chord.

Nothing depending other libraries.

about Testy

Testy is alternative to Basic Resident Register Card.

It is made as Reference iOS App based on blocks and overlayNetwork libraries.

about Signaling

Signaling coordinate Node to Node Communication (TCP/IP) in Overlay Network, with NAT Traverse, as Translate OverlayNetworkAddress to IP/Port.

Signaling emit signal at claim by Nodes in Cloud (Python).

Signaling make NAT Traverse in Overlay Network.

download

blocks - BlockChain Library α version
download
https://github.com/webbananaunite/blocks

overlayNetwork - Peer-to-Peer Overlay Network Communicate Library β version
download
https://github.com/webbananaunite/overlayNetwork

Testy - Basic Resident Register Application β version
download
https://github.com/webbananaunite/Testy

Signaling - Coordinater in Translate OverlayNetworkAddress to IP/Port β version
download
https://github.com/webbananaunite/Signaling

How to Use

Swift Package (Recommended)

  1. Open Testy Project or Your App Project in Xcode.
  2. File - Add Packages
  3. Input following blocks URL to Search or Enter Package URL Box on UpRight. https://github.com/webbananaunite/blocks
  4. You see blocks library's README.md.
  5. Tap Add Package Button on DownRight.
  6. Make Sure there Added blocks library in Project - Frameworks, Libraries and Embeded Content.
  7. Make Sure there Added The BlockChain Library Suite(blocks and overlayNetwork libraries) at Package Dependencies in Project Navigator in Xcode.
  8. At First, a Simulator / Device must run as Boot Node. For App run as Boot Node, Set {RunAsBootNode} as Run Argument / Environment Variable on Edit Scheme on Xcode.
  9. Xcode Build and Install Devices or Simulators.
  10. Open App and Tap "Join blocks Network" Button.
  11. Wait Around 8 min. up to Done Initialize DHC table.

Carthage

  • $ cd your project directory
  • $ echo 'github "webbananaunite/blocks" "carthage"' > Cartfile
  • $ carthage update --use-xcframeworks

CocoaPods

  • $ cd your project directory
  • $ pod init
  • $ vi Podfile
target 'target name in your App proj' do
  use_frameworks!
    pod 'blocks-blockchain'
end
  • $ pod install
  • Open your app.xcworkspace created by pod.

limitations

NOT running Boot Node in Public Network yet in Beta Version. Cause First device must run as Boot Node.

license

blocks library & overlayNetwork library & Testy is published under MIT License,
as embedding your apps, any who can use any purpuse (*** Exclude exchangeable digital currency in cryptocurrency exchange ***). by free.

prohibited matter

Use as exchangeable digital currency in cryptocurrency exchange is PROHIBITED.

description

words:

  • Baby Sitter

As A Node Joinning Overlay Network in OSI Session Layer, At First, Take Baby Sitter Node's IP and Port From TXT Record in bind Server.
Then Send FS Command to Baby Sitter Node for any Entry in Distributed Hush Table (Code Protocol).

  • Taker

First of All, As Joinning blocks Block Chain Network in OSI Presentation/Application Layer, The Node Should Submit Application for Birth Registration to The Network. No There Administrator Node/Person In The Network, The Node Should Find Taker Node for Send AT (Ask For Taker) Claim as Publish Transaction.

  • Book

What Wrote blocks Block Chain.

  • Booker

The Booker Node Collect Non-Booked Transactions, Do Proof of Work as Calculate A Nonce, Publish Block.
As Firstest and Legitimate Nonce Value than Other Node, The Node be Booker.
The Booker Do Beheivier as Temporary Administrator of Book (blocks Block Chain) Up to Next Proof of Work.

language:

  • SwiftUI (Protocol Oriented)
  • C++ (Metal)
  • objc (DNS resolv)
  • Python (Signaling)

using 3rd party libraries

Nothing, but program include other one copyrights.

  • QuadKey - Microsoft Corporation
  • SHA-512 - Aaron D. Gifford

programming architecture:

around DDD, Onion (Protocol Oriented)

byteOrder:

  • Distributed Hash Table (Finger table) address
    Little Endian

  • nonce
    Little Endian

cpu, gpu

nonce calculator is choosable cpu or gpu.

status

Beta

Have NOT all done functions implementation.

  • ex. Leaving and returning from DHT Network in overlayNetwork.

All implemented version is planned Release at May 2024.

Interested in Building Social Infrastructure by Peer-to-Peer Overlay Network, Block-chain System, On volunteer, please join my Project.

but, Don't accept application from one related to Cryptocurrency Exchange.

Let's Have fun!

overlaynetwork's People

Contributors

webbananaunite avatar webbanana avatar

Watchers

 avatar

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.