{"id":19123183,"url":"https://github.com/digitalbazaar/bitmunk","last_synced_at":"2025-08-20T06:05:58.811Z","repository":{"id":797735,"uuid":"497567","full_name":"digitalbazaar/bitmunk","owner":"digitalbazaar","description":"An open source, copyright-aware peer-to-peer client that enables browser-based buying/selling of music, movies and television by fans.","archived":false,"fork":false,"pushed_at":"2010-07-27T00:15:05.000Z","size":2638,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-05-05T19:03:16.648Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://bitmunk.com/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digitalbazaar.png","metadata":{"files":{"readme":"README","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}},"created_at":"2010-02-01T16:12:59.000Z","updated_at":"2024-02-23T07:02:45.000Z","dependencies_parsed_at":"2022-08-16T10:55:18.127Z","dependency_job_id":null,"html_url":"https://github.com/digitalbazaar/bitmunk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/digitalbazaar/bitmunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fbitmunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fbitmunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fbitmunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fbitmunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalbazaar","download_url":"https://codeload.github.com/digitalbazaar/bitmunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fbitmunk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271273949,"owners_count":24730897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-09T05:24:39.406Z","updated_at":"2025-08-20T06:05:58.674Z","avatar_url":"https://github.com/digitalbazaar.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Introduction\n------------\n\nBitmunk enables people that create digital content to distribute it through the\nWeb and receive payment directly from their fans and customers. It is also \ndesigned to help fans and customers distribute digital content on behalf of the \ncontent creators in a way that is both legal and financially beneficial to the \ncreators, fans and customers. The technology is designed to be integrated \ndirectly into web devices, finally making legal digital content distribution a \nfirst-class citizen on the web.\n\nBitmunk is also a reference implementation of the PaySwarm protocol.\n\nThe Payswarm web platform is an open standard that enables web browsers and web \ndevices to perform micropayments and copyright-aware, peer-to-peer digital \nmedia distribution.\n\nFor more information on Bitmunk, visit: \n\nhttp://bitmunk.com/wiki/\n\nFor more information on PaySwarm, visit:\n\nhttp://payswarm.com/\n\nFeatures\n--------\n\n* Full implementation of the PaySwarm P2P client.\n* Firefox plugin to launch and manage the P2P client.\n* Complete end-to-end encryption via TLS\n* Verifiable identity and digital signature support via DSA and RSA\n* Web-browser based UI to purchase digital content on the P2P network.\n* Web-browser based UI to sell digital content on the P2P network.\n* Swarming download and upload support.\n* UPnP firewall and gateway device auto-configuration support\n* Upload and download rate control\n\nGetting Started\n---------------\n\nYou must first have the Monarch web application framework checked out in the\nsame directory as the Bitmunk source code. To get Monarch, follow these\ndirections:\n\nhttp://github.com/digitalbazaar/monarch\n\nOnce you have downloaded and installed Monarch, you will be able to compile\nBitmunk.\n\nTo compile and run on Linux:\n\n./build-setup\nmake\n\nTo compile and run on Intel Mac OS X:\n\n./build-setup -s\n./configure --enable-macos\nmake\n\nTo compile for Windows XP, Vista, 7:\n* You must have the mingw32 compiler toolchain - the easiest way to get\nthis working is to use Linux and cross-compile for Windows.\n\n./build-setup -s\n./configure --enable-windows\nmake\n\nTo test the various subsystems in Linux and Mac OS X:\n\nmake test\n\nSystem Details\n--------------\n\nThe Bitmunk project serves as a reference implementation of the PaySwarm\nprotocol. The reference implementation provides a high-performance \nPaySwarm transaction engine, catalog management, swarming support and a \nFirefox plugin to launch and control the software.\n\nAn overview of each subsystem is provided below:\n\nbmbfp\n-----\n\nProvides the interface that is used by the Binary File Processor modules\nwatermark and embed digital receipts in files that are purchased on the\nPaySwarm network.\n\nbmcommon\n--------\n\nProvides basic identity profile support, logging, digital signature support,\ntype definitions, interfaces and input validation services that are used by\nmany of the other Bitmunk libraries.\n\nbmcustomcatalog\n---------------\n\nProvides the REST API for remotely managing a customer's sales catalog.\n\n\nbmdata\n------\n\nSupport libraries for processing MP3, AVI and PDF files.\n\n\nbmeventreactor\n--------------\n\nThe event reactor is used to distribute events from the application server\nto any web-based front-end services.\n\n\nbmeventreactor-downloadstate\n----------------------------\n\nThe download state event reactor plugin is used to distribute events specific\nto the swarming downloads that are being performed by the Bitmunk software.\n\nbmfilebrowser\n-------------\n\nProvides a REST API for browsing files on the filesystem.\n\nbmmedialibrary\n--------------\n\nThe media library is used to manage and keep track of all of the media\nfiles that are bought and sold by the Bitmunk software. \n\nbmnegotiate\n-----------\n\nProvides the interface for digital contract negotiation. Negotiation may\noccur over data transfer price, download/upload speed, bulk purchases and\na variety of other negotiable items in a digital download contract.\n\nbmnode\n------\n\nThe core of the Bitmunk application providing configuration, command-line\nprocessing, login management, identity certificate management, REST API\ninitialization, inter-plugin messaging, monitoring services and micro-process\nmanagement.\n\nbmperuserdb\n-----------\n\nThe Bitmunk application allows multiple Bitmunk user accounts to utilize a \nsingle node to buy and sell digital content. This module provides per-user\nmanagement of download, upload and directory configuration options.\n\nbmportmapper\n------------\n\nThe port mapping service is used to auto-configure firewalls and routing\ndevices to allow peer-to-peer traffic to occur between peers on the Bitmunk\nnetwork.\n\nbmprotocol\n----------\n\nProvides the Bitmunk Transfer Protocol implementation, which is based on\nHTTP with a number of header extensions for digital signature verification\nas well as the use of HTTP Trailers to digitally sign streaming content.\n\nbmpurchase\n----------\n\nThe purchase module is used to pick sellers, negotiate contracts, calculate\ndownload prices, digitally sign contracts, acquire licenses, perform swarming\ndownloads, and decrypt and verify purchases. \n\n\nbmsell\n------\n\nThe sell module is used to provide digital file samples, negotiate contracts,\ndigitally sign contracts, perform swarming uploads and rate-limit based\non bandwidth limits set by the seller.\n\nbmsystem\n--------\n\nProvides basic system services such as base configuration management, \nevents, purchase directive processing, responding to search spiders\n(robots.txt), software version response, and tracking software statistics.\n\nbmtest\n------\n\nProvides the basic interface that the unit tests use for the continuous\nintegration tests that are performed as a part of every software commit and \nbuild cycle.\n\nbmwebui\n-------\n\nThe web user interface module provides all of the services that are used by\nweb browsers when communicating with the Bitmunk application. These services\ninclude proxying support, Adobe Flash policy services, session management,\nredirect services, a session tracking database and a status service.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalbazaar%2Fbitmunk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalbazaar%2Fbitmunk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalbazaar%2Fbitmunk/lists"}