{"id":31123188,"url":"https://github.com/webbananaunite/blocks","last_synced_at":"2026-04-13T21:31:32.427Z","repository":{"id":213675388,"uuid":"734658574","full_name":"webbananaunite/blocks","owner":"webbananaunite","description":"blocks is iOS/Linux library as introduce BlockChain System to your Apps, based on Satoshi Nakamoto's Paper. Characteristically, blocks is pre-contained Activities in Social System (Government, Public Sectors) as Birth Registration, Residential Record, Guarantor.","archived":false,"fork":false,"pushed_at":"2025-09-09T06:46:15.000Z","size":725,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-19T02:33:15.216Z","etag":null,"topics":["blockchain","carthage","cloudcomputing","ddd-patterns","ios","linux","nat-hole-punching","nat-traversal","onion-architecture","overlay-network","protocol-oriented-programming","public-sector","social-infrastructure","socket-io","swift","swift-package-manager","swift-static-linux-sdk","swiftpackage","tcp-hole-punching","tcp-ip"],"latest_commit_sha":null,"homepage":"https://www.webbanana.org","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webbananaunite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-22T09:03:43.000Z","updated_at":"2025-09-09T06:46:19.000Z","dependencies_parsed_at":"2024-01-11T11:54:40.849Z","dependency_job_id":"5e9552d9-fbb8-4894-baca-4cde5411dec0","html_url":"https://github.com/webbananaunite/blocks","commit_stats":null,"previous_names":["webbananaunite/blocks"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/webbananaunite/blocks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbananaunite%2Fblocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbananaunite%2Fblocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbananaunite%2Fblocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbananaunite%2Fblocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webbananaunite","download_url":"https://codeload.github.com/webbananaunite/blocks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webbananaunite%2Fblocks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31771803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","carthage","cloudcomputing","ddd-patterns","ios","linux","nat-hole-punching","nat-traversal","onion-architecture","overlay-network","protocol-oriented-programming","public-sector","social-infrastructure","socket-io","swift","swift-package-manager","swift-static-linux-sdk","swiftpackage","tcp-hole-punching","tcp-ip"],"created_at":"2025-09-17T18:02:03.349Z","updated_at":"2026-04-13T21:31:32.403Z","avatar_url":"https://github.com/webbananaunite.png","language":"Swift","readme":"# BlockChain Library Suite\n[日本語](READMEjp.md)\n\n## Applied UnConnect Exception and Heart Beat 20250909JST\nAdded as for Exception As Can NOT Connect to Nodes.  \nAdded Checking Node Heart Beat.  \n\n## all we did up 20250806 1900JST\nHave Fixed Up Handshake with Peer in NAT Traversal on Updated Socket Communication.  \n\n## 20250806 updated\nHave Fixed up Issue around Occurred translate unavailable in Signaling.   \nTranslate Table Added in Node for handle translate unavailable issue.   \nSocket Communication have Big Updated at all in overlayNetwork.   \n\n## All We Did up to 20250701\n- Procedure as for Occurred Irregular (in overlayNetwork library)  \nHandle for Occurred translateNak on Node Leaves Offline. (Can't translate OverlayNetworkAddress to IP Address) in Signaling Phase. (as Init Finger Table)  \nLet Successor Nodes Multiple Candidates in Chord Finger Table.  \nAdded EnQueue Method for Exceptiion Interruption. (Command Queue and Communication Queue)  \n\n## All We Did up to 20250318\nAll Done applied on Linux Platform except Calculate Nonce as same Code as iOS/iPadOS. Should be install Swift Compiler to Linux [download](https://www.swift.org/install/linux/#platforms)https://www.swift.org/install/linux/#platforms.  \n\nRunning 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.  \n\nSignaling Server is Working in Public Network. (Library will find out TXT Records on Name Server.)  \n\n## Our Goals\nIn 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).  \n\nBlockchained Points is for exchange Goods/Services.  \n\nMust NOT any Working for get the Points.  \nGet the Points every month on demand.  \n\n## blocks\nblocks is a iOS/Linux library as introduce BlockChain System to your Apps, based on Satoshi Nakamoto's Paper,  \nfor various purpose (*** Exclude exchangeable digital currency in cryptocurrency exchange ***) iOS App/Linux App.  \n\nCharacteristically, blocks is pre-contained Activities in Social System (Government, Public, Private Sectors) as Birth Registration, Residential Record, Guarantor.\n\nIt is depend on overlayNetwork library.\n\n## overlayNetwork\noverlayNetwork 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.  \n\nDo Communicate Other Node with NAT Traverse (TCP Hole punching).  \n\nWork with POSIX select() system call as Multiplexing Communication in Swift Code.  \n\nNothing depending other libraries.  \n\n## Testy\nTesty is alternative to Basic Resident Register Card. (Work on iOS/Linux)  \n\nIt is made as Reference iOS App/Linux App based on blocks and overlayNetwork libraries.\n\n## Signaling\nSignaling coordinate Node to Node Communication (TCP/IP) in Overlay Network, with NAT Traverse,\nas Translate OverlayNetworkAddress to IP/Port.\n\nSignaling emit signal at claim by Nodes in Cloud (Python Code).\n\nSignaling make NAT Traverse (TCP Hole punching) in Overlay Network.  \n\nWork with POSIX select() system call as Multiplexing Communication in Python Code.  \n\n## download\nblocks - BlockChain Library  \n[download](https://github.com/webbananaunite/blocks)  \nhttps://github.com/webbananaunite/blocks  \n \noverlayNetwork - Peer-to-Peer Overlay Network Communicate Library NAT Traverse (TCP Hole punching)  \n[download](https://github.com/webbananaunite/overlayNetwork)  \nhttps://github.com/webbananaunite/overlayNetwork  \n \nTesty - Basic Resident Register Application  \n[download](https://github.com/webbananaunite/Testy)  \nhttps://github.com/webbananaunite/Testy  \n \nSignaling - Coordinater in Translate OverlayNetworkAddress to IP/Port NAT Traverse (TCP Hole punching)  \n[download](https://github.com/webbananaunite/Signaling)  \nhttps://github.com/webbananaunite/Signaling  \n\n## How to Build Linux Apps with Closs-Compile on macOS as using Swift Linux Static Library\n0) To Open Project for Linux App, Open Testy/Package.swift in Xcode instead Testy/Testy.xcodeproj.  \n1) Download and Install Swift Compiler [download](https://www.swift.org/install/macos/)https://www.swift.org/install/macos/.  \n  ex. swift-6.0.3-RELEASE-osx.pkg  \n2) Extract toolchain spcifier for define TOOLCHAINS environment variable.  \n```\n$ plutil -extract CFBundleIdentifier raw /Library/Developer/Toolchains/swift-6.0.3-RELEASE.xctoolchain/Info.plist \norg.swift.603202412101a\n```\n3) Install Static Linux SDK for Swift cf.   [https://www.swift.org/documentation/articles/static-linux-getting-started.html](https://www.swift.org/documentation/articles/static-linux-getting-started.html)  \n```\n$ TOOLCHAINS=org.swift.603202412101a swift sdk install ~/Downloads/swift-6.0.3-RELEASE_static-linux-0.0.1.artifactbundle.tar.gz  \n```\n3-2) Change includePath in Package.swift if Download Libraries Source Code to Local.  \n```\nlet includePath = \"{Your Absolute Path}/Library/org.swift.swiftpm/swift-sdks/swift-6.1.2-RELEASE_static-linux-0.0.1.artifactbundle/swift-6.1.2-RELEASE_static-linux-0.0.1/swift-linux-musl/musl-1.2.5.sdk/x86_64/usr/include\"\n```\n3-3) Switch Dependency Setting in Package.swift (Testy App and blocks library) if Download Libraries Source Code to Local.  \n```\ndependenciesSettings  \n    .package(name: \"overlayNetwork\", path: \"../overlayNetwork\"),  //using local source code.  \n    .package(name: \"blocks\", path: \"../blocks\"),  //using source code in same device.\n```\n4) Closs-Compile for Linux App  \n```\n$ cd ~/Documents/block\\ chain/Testy\n$ TOOLCHAINS=org.swift.603202412101a swift build -v --swift-sdk x86_64-swift-linux-musl --build-path ~/appOutput/Testy\n```\n5) Copy binary to Target Linux.  \n```\n$ rsync -ahvz -C --perms --chmod=F0755,D2770 -e 'ssh -i {your key file} ' ~/appOutput/Testy/x86_64-swift-linux-musl/debug/TestyOnLinux {target user}@{target host name}:{target path}  \n```\n6) Set Target Run Environment on by Linux Distribution  \n[download](https://www.swift.org/install/linux/#platforms)https://www.swift.org/install/linux/#platforms  \n```\nex.\n$ wget https://download.swift.org/swift-6.0.3-release/ubi9/swift-6.0.3-RELEASE/swift-6.0.3-RELEASE-ubi9.tar.gz\n$ tar -xzf swift-6.0.3-RELEASE-ubi9.tar.gz\n$ vi .bashrc\nexport PATH=~/swift-6.0.3-RELEASE-ubi9/usr/bin:\"${PATH}\"\n```\n7) Run App on shell.\n```\n$ lldb TestyLinux\n```\n\n## How to Build with Xcode on iPhone/iPad\n### Swift Package (Recommended)\n1) Open Testy Project or Your App Project in Xcode.  \n2) File - Add Packages\n3) Input following blocks URL to Search or Enter Package URL Box on UpRight.\nhttps://github.com/webbananaunite/blocks\n4) You see blocks library's README.md.\n5) Tap Add Package Button on DownRight.\n6) Make Sure there Added blocks library in Project - Frameworks, Libraries and Embeded Content.\n7) Make Sure there Added The BlockChain Library Suite(blocks and overlayNetwork libraries) at Package Dependencies in Project Navigator in Xcode.\n8) Xcode Build and Install Devices or Simulators.  \n9) Open App and Tap \"Join blocks Network\" Button then Start Communication to Signaling Server on Cloud.  \n10) Wait Around 5 min. up to Done Initialize OverlayNetwork Finger table. (Initial Boot time Only)  \n### Carthage (*Not Available upper 0.3.0, Use Swift Package Instead)\n- $ cd your project directory\n- $ echo 'github \"webbananaunite/blocks\" \"carthage\"' \u003e Cartfile\n- $ carthage update --use-xcframeworks\n### CocoaPods (*Not Available upper 0.3.0, Use Swift Package Instead)\n- $ cd your project directory\n- $ pod init\n- $ vi Podfile\n```\ntarget 'target name in your App proj' do\n  use_frameworks!\n    pod 'blocks-blockchain'\nend\n```\n- $ pod install\n- Open your app.xcworkspace created by pod.\n\n## limitations\nBootNode Running in Public Network is cheep environment cause Suddenly Stop BootNode as Shorting Memory.  \n\n## license\nblocks library \u0026 overlayNetwork library \u0026 Testy is published under MIT License,  \nas embedding your apps, any who can use any purpuse (*** Exclude exchangeable digital currency in cryptocurrency exchange ***). by free.\n\n## prohibited matter\nUse as exchangeable digital currency in cryptocurrency exchange is PROHIBITED.\n\n## description\n### Actors:\n- Boot Node\n\nFirst Node in Overlay Network (blocks P2P Network).\n\n- Baby Sitter\n\nAs 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.  \nThen Send FS Command to Baby Sitter Node for any Entry in Distributed Hush Table (Code Protocol).  \n\n- Taker\n\nFirst of All, As Joinning blocks Block Chain Network in OSI Presentation/Application Layer, The Node Should Submit Application for Birth Registration to The Network.\nNo There Administrator Node/Person In The Network, The Node Should Find Taker Node for Send AT (Ask For Taker) Claim as Publish Transaction.\n\n- Booker\n\nThe Booker Node Collect Non-Booked Transactions, Do Proof of Work as Calculate A Nonce, Publish Block.  \nAs Firstest and Legitimate Nonce Value than Other Node, The Node be Booker.  \nThe Booker Do Beheivier as Temporary Administrator of Book (blocks Block Chain) Up to Next Proof of Work.\n\n### Things:\n- Book\n\nWhat Wrote blocks Block Chain.\n\n\n### language:  \n- Swift (Protocol Oriented)\n- SwiftUI iOS only\n- C++ (Metal) iOS only\n- objc (DNS resolv) iOS only\n- Python (Signaling)\n\n### using 3rd party libraries:\nNothing, but program include other one copyrights.  \n- QuadKey - Microsoft Corporation  \n- SHA-512 - Aaron D. Gifford\n\n### programming architecture:  \nDDD, Onion Architecture (Protocol Oriented)\n\n### byteOrder:  \n- Distributed Hash Table (Finger table) address  \nLittle Endian\n\n- nonce  \nLittle Endian\n\n### cpu, gpu:\nnonce calculator is choosable cpu or gpu. iOS only\n\n## status\nBeta  \nHave Implemented All Features but following Advanced Features.\n\n#### Un Implemented Advanced Features (as 20250318 16:53 JST Tokyo):\n- Complessed Block, Light Node\n- Complessed Command Operand\n- Be Hi-Speed Detect Duplicate Birth Transaction, BasicIncome Transaction\n- Write Documents for Developer\n- Beta Test\n- Multi Signaling Servers Orchestration Work \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebbananaunite%2Fblocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebbananaunite%2Fblocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebbananaunite%2Fblocks/lists"}