All Done applied on Linux Platform except Calculate Nonce as same Code as iOS/iPadOS. Should be install Swift Compiler to Linux downloadhttps://www.swift.org/install/linux/#platforms.
Running BootNode in Public Network. (Library will find out TXT Records on Name Server.) But it is cheep environment cause Suddenly Stop BootNode as Shorting Memory.
Signaling Server is Working in Public Network. (Library will find out TXT Records on Name Server.)
In Our Goaled Community, Use Blockchained Points issued by the SYSTEM(in other words Autonomous Intelligence) instead of Money issued by CentralBank/Fed./Gov./Co. (Coin/Bill/Credit/Debit/Prepaid).
Blockchained Points is for exchange Goods/Services.
Must NOT any Working for get the Points.
Get the Points every month on demand.
blocks is a iOS/Linux 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/Linux 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.
overlayNetwork is a iOS/Linux library as Peer-to-Peer Overlay Network Communicate System, based on Distributed Hash Table Lookup Protocol MIT Laboratory's Paper named Chord.
Do Communicate Other Node with NAT Traverse (TCP Hole punching).
Work with POSIX select() system call as Multiplexing Communication in Swift Code.
Nothing depending other libraries.
Testy is alternative to Basic Resident Register Card. (Work on iOS/Linux)
It is made as Reference iOS App/Linux App based on blocks and overlayNetwork libraries.
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 Code).
Signaling make NAT Traverse (TCP Hole punching) in Overlay Network.
Work with POSIX select() system call as Multiplexing Communication in Python Code.
blocks - BlockChain Library
download
https://github.com/webbananaunite/blocks
overlayNetwork - Peer-to-Peer Overlay Network Communicate Library NAT Traverse (TCP Hole punching)
download
https://github.com/webbananaunite/overlayNetwork
Testy - Basic Resident Register Application
download
https://github.com/webbananaunite/Testy
Signaling - Coordinater in Translate OverlayNetworkAddress to IP/Port NAT Traverse (TCP Hole punching)
download
https://github.com/webbananaunite/Signaling
- To Open Project for Linux App, Open Testy/Package.swift in Xcode instead Testy/Testy.xcodeproj.
- Download and Install Swift Compiler downloadhttps://www.swift.org/install/macos/.
ex. swift-6.0.3-RELEASE-osx.pkg - Extract toolchain spcifier for define TOOLCHAINS environment variable.
$ plutil -extract CFBundleIdentifier raw /Library/Developer/Toolchains/swift-6.0.3-RELEASE.xctoolchain/Info.plist
org.swift.603202412101a
- Install Static Linux SDK for Swift cf. https://www.swift.org/documentation/articles/static-linux-getting-started.html
$ TOOLCHAINS=org.swift.603202412101a swift sdk install ~/Downloads/swift-6.0.3-RELEASE_static-linux-0.0.1.artifactbundle.tar.gz
- Closs-Compile for Linux App
$ cd ~/Documents/block\ chain/Testy
$ TOOLCHAINS=org.swift.603202412101a swift build -v --swift-sdk x86_64-swift-linux-musl --build-path ~/appOutput/Testy
- Copy binary to Target Linux.
ex.
$ scp -i {your key file} ~/appOutput/Testy/x86_64-swift-linux-musl/debug/TestyOnLinux {target user}@{target host name}:{target path}
- Set Target Run Environment on by Linux Distribution
downloadhttps://www.swift.org/install/linux/#platforms
ex.
$ wget https://download.swift.org/swift-6.0.3-release/ubi9/swift-6.0.3-RELEASE/swift-6.0.3-RELEASE-ubi9.tar.gz
$ tar -xzf swift-6.0.3-RELEASE-ubi9.tar.gz
$ vi .bashrc
export PATH=~/swift-6.0.3-RELEASE-ubi9/usr/bin:"${PATH}"
- Run App on shell.
$ lldb TestyLinux
- Open Testy Project or Your App Project in Xcode.
- File - Add Packages
- Input following blocks URL to Search or Enter Package URL Box on UpRight. https://github.com/webbananaunite/blocks
- You see blocks library's README.md.
- Tap Add Package Button on DownRight.
- Make Sure there Added blocks library in Project - Frameworks, Libraries and Embeded Content.
- Make Sure there Added The BlockChain Library Suite(blocks and overlayNetwork libraries) at Package Dependencies in Project Navigator in Xcode.
- Xcode Build and Install Devices or Simulators.
- Open App and Tap "Join blocks Network" Button then Start Communication to Signaling Server on Cloud.
- Wait Around 5 min. up to Done Initialize OverlayNetwork Finger table. (Initial Boot time Only)
- $ cd your project directory
- $ echo 'github "webbananaunite/blocks" "carthage"' > Cartfile
- $ carthage update --use-xcframeworks
- $ 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.
BootNode Running in Public Network is cheep environment cause Suddenly Stop BootNode as Shorting Memory.
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.
Use as exchangeable digital currency in cryptocurrency exchange is PROHIBITED.
- Boot Node
First Node in Overlay Network (blocks P2P Network).
- 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.
- 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.
- Book
What Wrote blocks Block Chain.
- Swift (Protocol Oriented)
- SwiftUI iOS only
- C++ (Metal) iOS only
- objc (DNS resolv) iOS only
- Python (Signaling)
Nothing, but program include other one copyrights.
- QuadKey - Microsoft Corporation
- SHA-512 - Aaron D. Gifford
DDD, Onion Architecture (Protocol Oriented)
-
Distributed Hash Table (Finger table) address
Little Endian -
nonce
Little Endian
nonce calculator is choosable cpu or gpu. iOS only
Beta
Have Implemented All Features but following Advanced Features.
- Complessed Block, Light Node
- Complessed Command Operand
- Be Hi-Speed Detect Duplicate Birth Transaction, BasicIncome Transaction
- Procedure as for Occurred Irregular
- Write Documents for Developer
- Beta Test
- Multi Signaling Servers Orchestration Work