├── images └── logos │ ├── README.md │ ├── bc-logo-black.png │ ├── bc-logo-white.png │ ├── bcc-community-screen.jpg │ ├── bcc-community-screen.png │ └── bcc-community-screen.psd ├── promo ├── README.md └── standard-signoff.md ├── .gitignore ├── CERTIFICATE.md ├── FUNDING.md ├── bc-accounts.md ├── Offboarding.md ├── release.md ├── INTERNSHIPS.md ├── release-path-standards.md ├── Calendar.md ├── CONTRIBUTING.md ├── secure-use-of-cli-tools.md ├── web-info-conventions.md ├── EarlyResearch └── smart-contract-negotiation.md ├── TODO-Delegated.md ├── Strategies.md ├── script-codeowners.md ├── Conferences.md ├── repo-conventions.md ├── script-codeowners-results.md ├── call-for-patrons.md ├── release-path.md ├── Tweetstorms-Best-Practices.md ├── release-dmg.md ├── Tweetstorms.md ├── standard-communications-text.md ├── TODO-Shannon.md ├── github-primer.md ├── apprenticeship-skills.md ├── README.md └── LICENSE.md /images/logos/README.md: -------------------------------------------------------------------------------- 1 | logo files for BCC Community. 2 | -------------------------------------------------------------------------------- /promo/README.md: -------------------------------------------------------------------------------- 1 | This is standard promo info for Blockchain Commons 2 | -------------------------------------------------------------------------------- /images/logos/bc-logo-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockchainCommons/Community/HEAD/images/logos/bc-logo-black.png -------------------------------------------------------------------------------- /images/logos/bc-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockchainCommons/Community/HEAD/images/logos/bc-logo-white.png -------------------------------------------------------------------------------- /images/logos/bcc-community-screen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockchainCommons/Community/HEAD/images/logos/bcc-community-screen.jpg -------------------------------------------------------------------------------- /images/logos/bcc-community-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockchainCommons/Community/HEAD/images/logos/bcc-community-screen.png -------------------------------------------------------------------------------- /images/logos/bcc-community-screen.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockchainCommons/Community/HEAD/images/logos/bcc-community-screen.psd -------------------------------------------------------------------------------- /promo/standard-signoff.md: -------------------------------------------------------------------------------- 1 | # Script: Patronage Signoff 2 | 3 | [Product] is powered by Blockchain Commons, a not-for-profit organization dedicated to creating open blockchain infrastructure and promoting a secure & open web. 4 | 5 | We're funded entirely by patronage, donations, and collaborative partnerships with people like you. Please consider becoming a sponsor at Github.com/BlockchainCommons or making a donation at btcpay.blockchaincommons.com. 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled source # 2 | ################### 3 | *.com 4 | *.class 5 | *.dll 6 | *.exe 7 | *.o 8 | *.so 9 | 10 | # Packages # 11 | ############ 12 | # it's better to unpack these files and commit the raw source 13 | # git has its own built in compression methods 14 | *.7z 15 | *.dmg 16 | *.gz 17 | *.iso 18 | *.jar 19 | *.rar 20 | *.tar 21 | *.zip 22 | 23 | # Logs and databases # 24 | ###################### 25 | *.log 26 | *.sql 27 | *.sqlite 28 | 29 | # OS generated files # 30 | ###################### 31 | .DS_Store 32 | .DS_Store? 33 | ._* 34 | .Spotlight-V100 35 | .Trashes 36 | ehthumbs.db 37 | Thumbs.db 38 | -------------------------------------------------------------------------------- /CERTIFICATE.md: -------------------------------------------------------------------------------- 1 | # Blockchain Commons Certificate of Completion 2 | 3 | Blockchain Commons hereby certify that Mr/Ms _______________________ has successfully completed [ ________________________________, ...] and the required ___ hours of work under the mentorship of Mr/Ms ___________________ between __/__/____ and __/__/____. 4 | 5 | Mr/Ms ___________ 6 | 7 | ## List of Contributions 8 | 9 | ... 10 | 11 | ## Testimonial 12 | 13 | ... 14 | 15 | 16 | 17 | Mr. Christopher Allen Blockchain Commons 18 | -------------------------------------------------------------------------------- /FUNDING.md: -------------------------------------------------------------------------------- 1 | # Open Source Grants and Alternative Funding 2 | 3 | Open source projects often rely on volunteer contributions and ad-hoc funding. Many developers volunteer their time to either maintain or contribute to open source projects, and the biggest constraint is time. We at Blockchain Commons, an entirely patron funded organization, and we see it in the broader Bitcoin and blockchain communities. 4 | 5 | ## List of funding sources 6 | 7 | In order to keep track of our own funding outreach, and help other OSS developers target their funding requests, we've put together a list of potential funding sources: 8 | 9 | 1. **Open Source Capital**: OSS Capital is the world's first and only early-stage COSS (Commercial Open-Source Software) company investor and platform - https://oss.capital/ 10 | 11 | 2. **Open Sats**: Open Sats is building a web donation platform where donors can learn, donate, and contribute to Bitcoin Core and related free and open source projects - https://opensats.org/ 12 | 13 | 3. **No Starch Foundation**: - The No Starch Press Foundation (NSPF) will award up to $100,000 USD in grants of no less than $10,000 each to projects that are designed to grow the worldwide hacker community, and support STE(A)M education initiatives https://nostarchfoundation.org/grant-application/ 14 | -------------------------------------------------------------------------------- /bc-accounts.md: -------------------------------------------------------------------------------- 1 | # Blockchain Commons Accounts 2 | 3 | A listing of Blockchain Commons accounts and pages with notable information on them that should be updated from time to time 4 | 5 | ## GitHub 6 | 7 | - [ ] Organizational README: https://github.com/BlockchainCommons/.github/blob/master/profile/README.md 8 | - [ ] Sponsors page: https://github.com/sponsors/BlockchainCommons 9 | 10 | ## GitHub Repos of Note 11 | 12 | - [ ] Gordian Overview: https://github.com/BlockchainCommons/Gordian/blob/master/README.md 13 | 14 | ## Website 15 | 16 | - [ ] Main Website: https://github.com/BlockchainCommons/www.blockchaincommons.com#readme 17 | - [ ] Main Projects: https://github.com/BlockchainCommons/www.blockchaincommons.com/blob/master/projects.md 18 | - [ ] Main Sponsors: https://github.com/BlockchainCommons/www.blockchaincommons.com/blob/master/sponsors.md 19 | - [ ] Main Vision: https://github.com/BlockchainCommons/www.blockchaincommons.com/blob/master/vision.md 20 | - [ ] SmartCustody Site: https://github.com/BlockchainCommons/www.SmartCustody.com#readme 21 | - [ ] Silicon Salon About Page: https://github.com/BlockchainCommons/siliconsalon.info/blob/master/_pages/about.md 22 | 23 | ## Twitter 24 | 25 | - [ ] Twitter Profile: https://twitter.com/BlockchainComns ["Edit Profile"] 26 | 27 | ## Youtube 28 | 29 | - [ ] Blockchain Commons Channel: Channel -> Customization -> Basic Info: https://studio.youtube.com/channel/UCPQ9LtDWZAkfItMF4B5tztw/editing/details 30 | -------------------------------------------------------------------------------- /Offboarding.md: -------------------------------------------------------------------------------- 1 | # Offboarding 2 | 3 | The following processes should be used to offboard a volunteer, intern, or contractor who had been given permissions and is now leaving Blockchain Commons. 4 | 5 | ## GitHub Permissions 6 | 7 | Check the list of outside collaborators, and remove as appropriate: 8 | 9 | https://github.com/orgs/BlockchainCommons/outside-collaborators 10 | 11 | Search the organization for uses of the person's GitHub ID and click on the "Code" tab: 12 | 13 | 1. Remove ID from any CODEOWNERS files. 14 | 2. Remove any active titles such as "Maintainer" in Credits of README, but maintain (and/or add) "Author", "Developer", or other credits showing historical role. 15 | 3. Obviously, do *not* touch the CLAs. 16 | 17 | ## Linode Permissions 18 | 19 | Delete any user IDs created under Linode: 20 | 21 | https://cloud.linode.com/account/users 22 | 23 | Also: 24 | 25 | 1. Reset any passwords known by user. 26 | 2. Remove any of user's public keys from `~/.ssh/id_rsa.pub` and/or `authorized_keys`. (This is the preferred way of giving access to users.) 27 | 28 | ## Signal Permissions 29 | 30 | If any Signal groups are considered private, possibly including `bc-sysadmin` and `bc-bizdev-20xx`, user should be removed. (They can also LEAVE any groups themselves.) 31 | 32 | ## Apple Permissions 33 | 34 | Remove any permissions from App Store Connect: 35 | https://appstoreconnect.apple.com/access/users 36 | 37 | Edit, check, and Delete the user. 38 | -------------------------------------------------------------------------------- /release.md: -------------------------------------------------------------------------------- 1 | # Release Best Practices 2 | 3 | When releasing a product: 4 | 5 | 1. Be sure all Issues that were resolved by the release are responded to and closed. 6 | 2. Be sure README.md and any other relevant files are updated for the new release. 7 | 3. Make sure the development state is updated per [Development Phases](https://github.com/BlockchainCommons/Community/blob/master/release-path.md) and our own [best practices for development phases](https://github.com/BlockchainCommons/Community/blob/master/release-path-standards.md) 8 | 4. Choose a version number with [semantic versioning](https://semver.org/) that in brief uses the form `X.Y.Z` where: 9 | * `X` is the major version number, updated to `1` when a product goes from "Beta" to "Feature-Complete" and to "2" or higher if backward-incompatible changes were introduced. 10 | * `Y` is the minor version number, updated for major, backward-compatible new features. 11 | * `Z` is the patch number for bugfixes or other minor changes. 12 | 5. Create a new version at the `releases` page on the repo. 13 | 6. Typically, version the new release as `vX.Y` for a major or minor release or `vX.Y.Z` for a bugfix. 14 | 7. If there were a small number of changes, list them; if there were a large number of changes, categorize them and summarize the major elements (see, for example [Gordian Seed Tool 1.4](https://github.com/BlockchainCommons/GordianSeedTool-iOS/releases/tag/releases%2Funiversal%2F1.4). 15 | 8. Hyperlink any changes referred to elsewhere, for example in a manual, a README.md, or another file. 16 | -------------------------------------------------------------------------------- /INTERNSHIPS.md: -------------------------------------------------------------------------------- 1 | # Blockchain Commons Internships 2 | 3 | While Blockchains Commons has always engaged promising entrants to the community as interns, as of June 2020, the community has taken one step further: prototyping a global team internship collaboration structure. 4 | 5 | ## Background 6 | 7 | The path towards this experimental internship collective builds upon early thoughts from Christopher Allen on [externships](https://twitter.com/christophera/status/988856246349508609?s=21). 8 | 9 | After a surge in interest with 2020's summer internship program, we settled on the pathway of collaboration across 7 accepted interns [thorough coverage in this July 3 Decrypt Media article](https://decrypt.co/34555/how-bitcoin-dev-hub-building-future-free-software). 10 | 11 | ## Purpose 12 | 13 | This first prototype of the global group internship is intended to produce documentation and recommendations for replicating similar collaborative experiments, to further bolster the Free and Open Source [FOSS] software community's capacity to engage and include newcomers. 14 | 15 | For this summer project, we are doing our primary synchronous communication via Signal group messages (including posting weekly office hours), HackMD for collaborative writing, and Github for development and project management. We also have guest speakers presenting their Bitcoin ecosystem projects during alternating weeks' office hours. 16 | 17 | Each of the current global interns brings their own strengths to the table, as well as their own desires for specific forms of technical and professional learning. Current projects underway can be viewed as [issues in the Blockchain Commons Community github repo](https://github.com/BlockchainCommons/BlockchainCommonsCommunity/issues). 18 | -------------------------------------------------------------------------------- /release-path-standards.md: -------------------------------------------------------------------------------- 1 | # Best Practice Stands for Release Path 2 | We are in the process of creating best-practice standards for the Blockchain Commons [release path](release-path.md). We use as our inspiration, the [Core Infrastructure Best Practices badge](https://github.com/coreinfrastructure/best-practices-badge) and other similar systems. 3 | What follows if our first-cut look at what standards we would like products to meet as they advance along the release path. We omit some from sources like Core Infrastructure (such as the need for a stable website and the ability to report bugs) because we believe the requirements our implicit in our use of GitHub. 4 | 5 | ## Research 6 | * _none currently_ 7 | 8 | ## Alpha 9 | * Have working build 10 | * Include Full attribution 11 | * Post Open license 12 | 13 | ## Late Alpha 14 | * Write Basic installation & usage instructions 15 | 16 | ## Beta 17 | * Acknowledge issues & PRs 18 | * Add static analysis tools to test suite 19 | * Complete Website (or GitHub) so it says what the product does and where to get it 20 | 21 | ## Community Review 22 | * Community members assess usability 23 | * Community members assess API 24 | * Community members define additional requirements 25 | * Community members report bugs or problems 26 | * Community members provide docs for testing suites 27 | 28 | ## Feature-Complete 29 | * Complete security reviews 30 | 31 | ## Final 32 | * Begin versioning releases 33 | * Fix vulnerabilities within 60 days 34 | 35 | _At this time, this listing is very incomplete; additions and comments are very welcome. Ultimately, we would like any "Final:" program to approach or entirely meet standards like those in the Core Infrastructure best Practices._ 36 | -------------------------------------------------------------------------------- /Calendar.md: -------------------------------------------------------------------------------- 1 | # Blockchain Calendar Dates 2 | 3 | The following days are among the days that are the most important to the concepts of Gordian. They're the dates that we currently put **Gordian Seed Tool** on sale (current Best Practice is to start the sale the day before and end it the day after to make sure we hit the day in question). 4 | 5 | * **January 3: Bitcoin Genesis Block.** This was the day that the Bitcoin Genesis Block was released, in 2009. It's probably our best "official holiday" for blockchains. 6 | * **March 31: World Backup Day.** This is a day that reminds us to backup our data. It's a good day to remind people about the importance of #SmartCustody and programs such as **Gordian Seed Tool**. 7 | * **July 4: US Independence Day.** Independence is one of the Gordian Principles, so it's a great day to talk about the fact that the Gordian independence is meant to give you financial independence. 8 | * **October 31: Bitcoin White Paper.** The Bitcoin White Paper was released to a cryptography mailing list on October 31, 2008, so this is the second optionf or Bitcoin's birthday, though most people prefer January 3. We can extend this holiday by one day to also include **November 1** as "Day of the Dead", when we remember to test our backups that our digital holdings become available to our heirs. 9 | 10 | Other days that could be used for announcements or sales include: 11 | 12 | * **January 28: Data Privacy Day.** 13 | * **August 1: Bitcoin Independence Day.** This was the day of the initiation of the [UASF for SegWit](https://bitcoinmagazine.com/culture/bitcoin-independence-day-how-this-watershed-day-defines-community-consensus). It was called "Bitcoin Independence Day" for a few days afterward. It's unclear if anyone is still noting this day, or if they've moved on. 14 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | This is a free and open source project and we welcome contributions. 4 | 5 | ## Getting Started 6 | 7 | First, make sure you have a [GitHub account](https://github.com/signup/free). 8 | 9 | ## Contributor's License Agreements 10 | 11 | If you're submitting changes to any Blockchain Commons codebases which run in production (not solely documentation), you'll need to upload a signed Contributor's License Agreement for that repository. 12 | 13 | To sign a Contributor License Agreement, fill in the relevant fields (indicated like this in the plaintext: $field). 14 | 15 | Then sign using GPG using the following command gpg --armor --clearsign --output ./CLA-signed/CLA.YOURGITHUBNAME.YOURGPGFINGERPRINT.asc CLA.md. 16 | 17 | You can either submit your signed Contributor License Agreement to this repo as a GPG signed Pull Request or email it to ChristopherA@BlockchainCommons.com. 18 | 19 | ## Changes 20 | * Significant improvements should be documented as GitHub issues first. 21 | * Fork the repository. 22 | * Make changes in your own fork. 23 | * When you make a commit, write a succinct summary of your changes in the description, add more details in the extended. 24 | * If you are using Github interface, before committing, review your changes with the Preview tab. Then commit your changes. 25 | * Go to the master repository, and submit a pull request for your changes. 26 | 27 | ## Typos and Other Small Changes 28 | 29 | If you find typos, mistakes, inconsistencies or other problems in the Blockchain Guild documents, please let us know by filing an issue at the appropriate issue tracker (we use multiple repositories). No issue is too small. 30 | 31 | # Community Guidelines 32 | 33 | * Be nice: Be courteous, respectful and polite to fellow community members. 34 | * Make everyone in our community feel welcome, regardless of their background and the extent of their contributions. 35 | * Share only content that you own, do not share private or sensitive information, and don't break laws. 36 | * Stay on topic. 37 | 38 | -------------------------------------------------------------------------------- /secure-use-of-cli-tools.md: -------------------------------------------------------------------------------- 1 | # Secure Use of BlockckainCommons Command Line Tools 2 | - There are several Linux-based operating systems built for anonymity, privacy and security: 3 | - [Tails](https://tails.boum.org/) 4 | - [Qubes](https://www.qubes-os.org/) 5 | - [Whonix](https://www.whonix.org/) 6 | 7 | This document describes how to install and use BlockchainCommons tools on these systems. 8 | 9 | ## How to Use BlockchainCommons Command Line Tools on TailsOS 10 | 11 | [Tails](https://tails.boum.org/) is a portable operating system that protects against surveillance and censorship. It is based on the Debian GNU/Linux distribution. 12 | 13 | The following BlockckainCommons tools have TailsOS release packages that can be installed manually: 14 | - [musign-cli](https://github.com/BlockchainCommons/musign-cli/releases/tag/0.1.0) 15 | - [keytool-cli](https://github.com/BlockchainCommons/keytool-cli/releases/tag/debian%2F0.7.1-1) 16 | - [sweeptool-cli](https://github.com/BlockchainCommons/sweeptool-cli/releases/tag/debian%2F0.1.0-1) 17 | - [bytewords-cli](https://github.com/BlockchainCommons/bytewords-cli/releases/tag/debian%2F0.3.2-1) 18 | - [lifehash-cli](https://github.com/BlockchainCommons/lifehash-cli/releases/tag/debian%2F0.1.0-1) 19 | - [seedtool-cli](https://github.com/BlockchainCommons/seedtool-cli/releases/tag/debian%2F0.9.1-1) 20 | 21 | In order to run any of the above tools on Tails: 22 | 0. While running Tails, download one or more of the above packages that you wish to use. You will now have a file with a `*.deb` extension e.g. [seedtool-cli_0.9.1-1_amd64.deb](https://github.com/BlockchainCommons/seedtool-cli/releases/download/debian%2F0.9.1-1/seedtool-cli_0.9.1-1_amd64.deb). 23 | 1. Optionally consider saving this file in your [Tails Persistent Storage](https://tails.boum.org/doc/persistent_storage/index.en.html) 24 | 2. Open an `Administrator Terminal`. This requires that you had set an `administrator password` when starting Tails. 25 | 3. To install the package if it is in the `Tor Browser` folder, enter the command: `dpkg -i "Tor Browser/seedtool-cli_0.9.1-1_amd64.deb"` 26 | 4. The executable e.g. `seedtool` will now be in your `PATH` and can be run from the command line. 27 | -------------------------------------------------------------------------------- /web-info-conventions.md: -------------------------------------------------------------------------------- 1 | # Info Website Conventions 2 | 3 | This page covers standard conventions for setting up exemplar websites, such as our .info websites at [Lifehash.info](https://lifehash.info/) and [Seedtool.info](https://github.com/BlockchainCommons/seedtool.info). 4 | 5 | ## Standard Text 6 | 7 | The following standard text should be applied to the website if it applies, usually at the bottom of the front page, so that it's visible, but not obstructive to the main purpose of the site. It should be placed with the Blockchain Commons logo (currently v3) with the suggestion of the logo going to the left, as shown below. 8 | 9 | You can align-left the picture in GitHub: 10 | 11 |
This site is a proof-of-concept. It is intended to demonstrate the Principles of the Gordian Architecture. Use at your own risk. For more info on this site, please see its repo. For more info on Blockchain Commons, please see our main web page. If you'd like to become a sponsor of work like this, please visit our Sponsors Page.
12 | 13 | For a non GitHub page you may need to change the align-left to float-left for correct flow: 14 | 15 |
This site is a proof-of-concept. It is intended to demonstrate the Principles of the Gordian Architecture. Use at your own risk. For more info on this site, please see its repo. For more info on Blockchain Commons, please see our main web page. If you'd like to become a sponsor of work like this, please visit our Sponsors Page.
16 | 17 | If you copy once of these, please be sure to change the LINK-TO-REPO link! 18 | -------------------------------------------------------------------------------- /EarlyResearch/smart-contract-negotiation.md: -------------------------------------------------------------------------------- 1 | Topic: High-level machine-assisted multi-party smart contract negotiation framework 2 | =================================================================================== 3 | 4 | What is the ideal high-level language for a smart contract? The 5 | high-level source language used to specify a contract needs to be both 6 | readable to the human beings involved in specifying it, and to machine 7 | tools which verify its correctness or illuminate edge cases. In the 8 | ideal language a typical smart contract is concisely specified, 9 | correct, and easy to understand with minimal training, with features 10 | reflecting the fact that multiple stakeholders are involved in the 11 | creation of any given smart contract. 12 | 13 | This is a much higher level than what is typically thought of as 14 | "script" in bitcoin-like blockchains or what ethereum calls "smart 15 | contracts." What is being specified can be a state machine for 16 | determining ownership of tokens or collateral, for which state 17 | transitions involve interactive signing rounds and/or confirmation of 18 | a transaction on the network. Or, perhaps, what is specified is 19 | constraints on the set of allowable state machines, and the actual 20 | state machine is materialized as a compilation step. This would 21 | reflect the fact that multiple parties are involved and the final 22 | state machine must conjunctively satisfy each of the parties' 23 | necessary conditions, the specification of which is under their own 24 | control. 25 | 26 | Regardless of the form of the language, it must be possible to make 27 | and/or verify assertions about the behavior of the resulting smart 28 | contract protocol, and it must be possible to deterministically 29 | compile program actors / daemons which satisfy each role of the 30 | protocol with proofs of correctness. Ideally this compilation step 31 | should make use of generic protocol runners such that specialized code 32 | need not be written on a per-contract basis. 33 | 34 | The output of a compilation step from this high-level source language 35 | is a [portable protocol 36 | specification](smart-contract-specification.md) which provably 37 | satisfies each participant's constraints or requirements. 38 | 39 | _Originally from https://github.com/BlockchainCommons/ResearchAgenda/blob/master/topics/smart-contract-negotiation.md by maaku._ 40 | -------------------------------------------------------------------------------- /TODO-Delegated.md: -------------------------------------------------------------------------------- 1 | # Available Tasks 2 | 3 | These are items originally from [Shannon's TODO](TODO-Shannon.md) that can likely be done by others. I've added explanations Ask me on Signal or at shannon.appelcline@gmail.com if you need more info on anything. 4 | 5 | If you take on something and finish it, please check it off. 6 | 7 | ## Web/Repo Tasks 8 | 9 | 3. * [ ] Link apps to various places like: 10 | * [ ] Youtube video descripts (Wolf's) 11 | * [ ] Main Page 12 | * [ ] Other Places? 13 | 14 | _The idea here is to better publicize Gordian Seed Tool, Gordian QR Tool, and in the future other apps. They can probably be linked from the description of our videos, and maybe from other places in our repos and on our main web page._ 15 | 16 | 4. * [ ] Write "expand the ideas of responsible key management and self-determination on the internet" into main web pages & repos 17 | 18 | _Add this language to the main web page and/or repo pages, as appropriate._ 19 | 20 | 5. * [ ] Add "
Read More
" to all older posts. 21 | 22 | _At some point we replaced:_ 23 | ``` 24 | 25 | ``` 26 | _In our front page posts with:_ 27 | ``` 28 | div class="bold--excerpt--node">Read More 29 | 30 | 31 | ``` 32 | _All of the older posts where this wasn't done need to similarly be updated._ 33 | 34 | ## Writing Tasks 35 | 36 | 1. * [ ] Write UR/PSBT Article 37 | 38 | _We've got a nice set of UR articles [here](https://github.com/BlockchainCommons/crypto-commons/blob/master/Docs/ur-1-overview.md#more-documents). We need a PSBT article that talks about how UR PSBTs work, with examples, in the same style and general organization as the Key Material and SSKR articles._ 39 | 40 | 2. * [ ] Add PSBTs to Request/Response 41 | 42 | _Once we've got a PSBT article done, we will also need to add a PSBT section to the Request/Response UR article [here](https://github.com/BlockchainCommons/crypto-commons/blob/master/Docs/ur-99-request-response.md)._ 43 | 44 | ## Video Tasks 45 | 46 | 1. * [ ] Input Graphics for Long Seedtool Video 47 | 48 | _We need to produce a long video demonstrating Seed Tool. This requires use of [Descript](https://www.descript.com/)._ 49 | 50 | _There is a [script](https://hackmd.io/yb2ut3w6QyOsAqb1x_UeOA?both#Seed-Tool-Longer-Video-3-5-minutes-YouTube) already written. It should be recorded by Wolf or Chris, since I believe they both have voices stored with Descript._ 51 | 52 | _After that, the large task is embedding images to go with the video. The largely completed long QR Tool video in our project workspace shows the approximate methodology. There's an image every line or two of text, overlapping with fades. (You might come up with a better way to shift between the images. There are also zooms and such not used in that sample, so go wild and create something that looks nice.) We've settled on 1920x1080 as the best size for this format._ 53 | 54 | # Completed Tasks 55 | 56 | 57 | 1. * [X] Check Projects page for essential updates https://www.blockchaincommons.com/projects.html (save bigger changes for later) `-namcios` 58 | 2. * [X] Add App Icons to WWW Projects Page `-namcios` 59 | 60 | -------------------------------------------------------------------------------- /Strategies.md: -------------------------------------------------------------------------------- 1 | # Blockchain Commons Strategies 2 | 3 | 1. **Blockchain Commons:** Create a specific commons that is dedicated to the realization of open infrastructure for secure, compassionate, decentralized systems. 4 | - Decide the boundaries, scale, and affordances of a commons that advance open infrastructure for decentralized systems. 5 | - Define and promote equitable business practices, including contracts and licenses, for sustainable wealth creation for both individual practitioners and organizations. 6 | - Gather resources, e.g., capabilities, intellectual property, funding, and people, to advance and sustain the realization of decentralized systems. 7 | - Lobby for secure, compassionate decentralized systems. Ensure that emerging policy and regulatory decisions enable and support decentralized approaches to credentials and identity. 8 | 1. **Open Infrastructure:** Define and advocate a specific and actionable notion of “open infrastructure” as a self-organizing approach to collaborative resource generation. 9 | - Establish an affirmative definition of open infrastructure that provides a framework for regenerative, self-organizing complex systems that can be drawn upon for deep wealth. 10 | - Define a language for discussing, and advocating for, open infrastructure. 11 | - Discover best practices for defining boundaries, scale, and affordances of shared commons. 12 | - Help governments support open infrastructure and avoid laws & regulations that undermine it. 13 | 1. **Architecture:** Research, define, and evangelize an interoperable architecture for secure decentralized systems that are resilient, pragmatic, and easy to use. 14 | - Create and maintain a shared risk model that addresses adversarial incentives, forces of nature, and operational resiliency. 15 | - Establish systems of incentives and obstacles against centralized rent-seeking, bad actors, invisible architectures, and other systemic risks. 16 | - Build reference code and research platform for cryptocurrencies, decentralized identity, and related components of secure decentralized systems. 17 | - Distill and champion the benefits of secure decentralized systems compared to centralized solutions. 18 | 1. **Demand:** Define and advocate a new techno-social contract of decentralized infrastructure, based on human dignity, respect for the individual, and mutual benefit for all contributors. 19 | - Advocate tools and processes that secure interactions and empower individuals without dependence on trusted third parties. 20 | - Stimulate demand for, a culture of, and support for secure decentralized systems. 21 | - Develop, capture, distill, and promote best practices in secure decentralized systems in simple, actionable, understandable terms. 22 | 1. **Peers:** Increase the demand for, and population of, people who understand the effective development, and use of, secure decentralized systems. 23 | 1. Create a vibrant, collaborative community of at least 6000 professionals engaged in conversation about advancing open infrastructure for decentralized systems. 24 | 1. Develop a pedagogy and offer a curriculum for practitioners, including internship and externship programs. 25 | 1. Create a cadre of stewards who collaborate to support open infrastructure for decentralized systems, both within and outside the organization. 26 | 1. Recruit, engage and empower diverse perspectives and experiences to realize effective, secure decentralized systems. 27 | -------------------------------------------------------------------------------- /script-codeowners.md: -------------------------------------------------------------------------------- 1 | # Codeowners Report 2 | 3 | Also see: [current run for Blockchain Commons](script-codeowners-results.md). 4 | 5 | This `python` script is intended to list out codeowners and the total open issues + PR (and potentially other metadata) for each repo in an organization or owner by a person. 6 | 7 | To use it: 8 | 9 | 1. Be sure `python` is installed on your local machine. 10 | 2. Download the script as something like `co-report.py`. 11 | 3. Create a Fine-grained personal-access token for your account. 12 | * Go to `Settings`. 13 | * Go to `developer setting 14 | * Go to `Fine-grained tokens` 15 | * Click `Generate new token` 16 | * Enter info 17 | * Copy the token. 18 | 4. Enter the token into the `GITHUB_PAT` variable in your local file. 19 | 5. Run the script, e.g., `python3 co-report.py`. 20 | 6. Enter your organization name or personal account as preferred. 21 | 22 | For this script to work for an organization, `Your Organizations`->`Settings` for the appropriate Organization->`Personal Access Tokens`->`Settings` must be set to allow your fine-grained access token 23 | 24 | ``` 25 | import requests 26 | import re 27 | 28 | GITHUB_API_BASE_URL = 'https://api.github.com' 29 | GITHUB_PAT = 'Put Your GitHub Personal Access Token Here' 30 | 31 | def get_user_repos(username): 32 | all_repos = [] 33 | page = 1 34 | per_page = 100 35 | headers = {'Authorization': f'token {GITHUB_PAT}'} 36 | 37 | while True: 38 | url = f'{GITHUB_API_BASE_URL}/users/{username}/repos?page={page}&per_page={per_page}' 39 | response = requests.get(url, headers=headers) 40 | 41 | if response.status_code == 200: 42 | repos = response.json() 43 | if not repos: # Empty response, no more repos to fetch 44 | break 45 | all_repos.extend(repos) 46 | page += 1 47 | else: 48 | print(f'Error {response.status_code}: Could not fetch repos') 49 | break 50 | 51 | return all_repos 52 | 53 | def get_codeowners_file_contents(owner, repo_name): 54 | url = f'{GITHUB_API_BASE_URL}/repos/{owner}/{repo_name}/contents/CODEOWNERS' 55 | headers = {'Authorization': f'token {GITHUB_PAT}'} 56 | response = requests.get(url, headers=headers) 57 | 58 | if response.status_code == 200: 59 | return response.json() 60 | else: 61 | return None 62 | 63 | def get_codeowners_open_issues(owner, repo_name): 64 | url = f'{GITHUB_API_BASE_URL}/repos/{owner}/{repo_name}' 65 | headers = {'Authorization': f'token {GITHUB_PAT}'} 66 | response = requests.get(url, headers=headers) 67 | return response.json() 68 | 69 | def extract_usernames(codeowners_content): 70 | pattern = r'@(\w+)' 71 | usernames = re.findall(pattern, codeowners_content) 72 | return usernames 73 | 74 | def main(): 75 | account = input('Enter the GitHub account username: ') 76 | 77 | print("\n| Repo | Code Owners | Issues & PRs|") 78 | print("|------|-------------|------------|") 79 | 80 | for repo in get_user_repos(account): 81 | if repo["name"] == '.github': 82 | continue 83 | 84 | codeowners = get_codeowners_file_contents(account, repo['name']) 85 | issues = get_codeowners_open_issues(account, repo['name']) 86 | 87 | if codeowners: 88 | content = requests.get(codeowners['download_url']).text 89 | usernames = extract_usernames(content) 90 | print(f'| {repo["name"]} | {", ".join(usernames)} | {issues["open_issues_count"]} |') 91 | else: 92 | print(f'| {repo["name"]} | | {issues["open_issues_count"]} |') 93 | 94 | 95 | if __name__ == '__main__': 96 | main() 97 | 98 | ``` 99 | -------------------------------------------------------------------------------- /Conferences.md: -------------------------------------------------------------------------------- 1 | # Blockchain, Digital Identity & Related Events 2 | 3 | Following is a list of major blockchain, digital identity, and other events. 4 | 5 | ## Upcoming Events 6 | 7 | * **[European Blockchain Convention](https://eblockchainconvention.com)** 2023/02/15 - 2023/02/17 Barcelona 8 | * **Real World Crypto 2023** 2023/03/27 - 2023/03/29 Tokyo, Japan 9 | * **Bitcoin Miami** 2023/05/18 - 2023/05/20 Miami Beach 10 | * **[Dweb Camp](https://dwebcamp.org)** 2023/06/21 - 2023/06/25 Camp Navarro CA 11 | * **[OAuth Security Workshop](https://oauth.secworkshop.events)** 2023/08/22 - 2023/08/24 Royal Holloway University, London/UK 12 | * **[IIW](https://internetidentityworkshop.com)** XXXVII Fall: 2023/10/10 - 2023/10/12 13 | * **[Identity Week Asia](https://www.terrapinn.com/exhibition/identity-week-asia/index.stm)** 2023/11/07 - 2023/11/08 Suntec Convention Centre, Singapore 14 | 15 | ## Crypto Calendars 16 | 17 | * **[BraveNewCoins](https://bravenewcoin.com/events)** [(Submit)](https://bravenewcoin.com/events/submit) 18 | * **[IACR](https://iacr.org/events/)** [(Submit)](https://iacr.org/events/edit.php) 19 | * **[IEEE Cipher](https://www.ieee-security.org/Calendar/cipher-hypercalendar.html)** (submit a plain text version of the CFP to cipher-cfp @ ieee-security.org) (paper-focused) 20 | * **[Security & Privacy Conferences](https://sec-deadlines.github.io/)** ([Submit a PR](https://github.com/sec-deadlines/sec-deadlines.github.io)) 21 | * **[ITEZ](https://itez.com/events)** (no submit?) 22 | 23 | ### Conference Calendars 24 | 25 | (May be less useful) 26 | 27 | * **[Conference Index](https://conferenceindex.org/conferences/cryptography)** (doesn't seem to support virtual conferences) 28 | * **[Conference-Service](https://conference-service.com/conferences/mathematical-cryptography.html)** [(Submit)](https://conference-service.com/auxiliary/submit.html) 29 | 30 | ## Identity-Related Groups 31 | 32 | * [APAC Digital Identity unConference Bangkok, Thailand](https://identitywoman.net/save-the-date-apac-digital-identity-unconference-march-1-3-2023) 2023/03/1 - 2023/03/03 Bangkok, Thailand 33 | 34 | * [IETF](https://www.ietf.org) 35 | * IETF 116 2023/03/25 - 2023/03/31 Yokohama Japan 36 | * IETF 117 2023/07/22 - 2023/07/28 San Francisco 37 | 38 | * [Internet Identity Workshop](https://internetidentityworkshop.com) 39 | * XXXVI Spring 2023/04/18 - 2023/04/20 40 | * XXXVII Fall 2023/10/10 - 2023/10/12 41 | 42 | * [RSA](https://www.rsaconference.com) 2023/04/24 - 2023/04/27 San Francisco Moscone center 43 | 44 | * [European Identity and Cloud conference](https://www.kuppingercole.com/events/eic2023) 2023/05/09 - 2023/05/12 Berlin 45 | 46 | * [Identiverse](https://identiverse.com) 2023/05/30 - 2023/06/02 Aria Resort & Casino, Las Vegas, NV 47 | 48 | * [MyData](https://mydata.org) 2023/05/31 - 2023/06/01 Helsinki Finland 49 | 50 | * [TPAC 2023](https://www.w3.org/wiki/TPAC) 2023/09/11 - 2023/09/15 Sevilla, Spain. 51 | 52 | ## Major Blockhain Conferences 53 | 54 | * [The Blockchain event](https://www.theblockchainevent.com/east) 2023/02/14 - 2023/02/17 Fort Lauderdale, Florida 55 | 56 | * [The World’s NFT Meeting](https://www.nftparis.xyz) 2023/02/24 - 2023/02/25 Grand Palais, Paris 57 | 58 | * [Consensus](https://www.coindesk.com/events) 2023/04/26 - 2023/04/28 Austin, Texas 59 | 60 | * [Web Summit Rio](https://rio.websummit.com/) 2023/05/01 - 2023/05/04 Rio de Janeiro, Brazil 61 | 62 | * [Web3](http://web3summit.com) 2023/06/28 - 2023/06/29 London, Hornsey Rd, UK 63 | 64 | * [The Advancing Bitcoin Conference](https://www.advancingbitcoin.com/enterprise/2023/) 2023/09/14 - 2023/09/15 Malaga, Spain 65 | 66 | * [Crypto 2023](https://crypto.iacr.org/2023/) 2023/08/19 - 2023/08/24 Santa Barbara, USA Submission deadline: 16 February 2023 67 | 68 | * [TABConf 2023](https://2023.tabconf.com/) 2023/09/06 - 2023/09/09 Atlanta, Georgia, USA 69 | 70 | * EthCon 71 | * Scaling Bitcoin 72 | 73 | ## No New Dates 74 | 75 | ### (investigate monthly) 76 | 77 | * [RWOT](https://www.eventbrite.com/e/rebooting-the-web-of-trust-xi-2022-the-hague-tickets-347605426187) 78 | * [KNOW](https://www.knowidentity.com/2020-conference) 79 | * [Singapore Blockchain Week](https://singaporeblockchain.org/singapore-blockchain-week-one-of-asias-largest-blockchain-events-returns-from-25-to-29-july-2022) 80 | * [IDNext](https://idnext.eu/events) 81 | 82 | -------------------------------------------------------------------------------- /repo-conventions.md: -------------------------------------------------------------------------------- 1 | # Repo Creation Conventions 2 | 3 | The following outlines standards for the creation of Blockchain Commons repos. 4 | 5 | ## Secure Template Usage 6 | 7 | All repos should be creating using the [secure template](https://github.com/BlockchainCommons/secure-template). After creating a repo, be sure to edit the `README.md` file to make it appropriate for your project: 8 | 9 | * Replace `$projectname` with **your-project-name**. 10 | * Fill in listings of other documents, origins, and subsequent usage. 11 | * Update the release status based on our [release-path document](https://github.com/BlockchainCommons/Community/blob/master/release-path.md). 12 | * Delete sections you are not using, possibly including project sponsors, installation instructions, etc. 13 | * Overall, each blank section should either be filled in or deleted. 14 | 15 | Be sure to return to your `README.md` occasionally, particularly to update the release status as that changes. 16 | 17 | ## Naming Conventions 18 | 19 | The following naming conventions are suggested for all new repos. (Old repos may be fully brought over to the conventions in the future.) 20 | 21 | Consult the section based on your repo-type for the best conventions for that repo. 22 | 23 | ### Applications 24 | 25 | App repos should be of the form `AppName-OS`. 26 | 27 | `AppName` should be camel-cased for mobile, desktop, and web apps; and lowercased for command-line apps. 28 | 29 | `-OS` might be: 30 | 31 | * ` `. Standalone device. 32 | * `-Android`. Android builds. 33 | * `-Catalyst`. Catalyst-only targets; otherwise use `-iOS`. 34 | * `-cli`. Unix command line. 35 | * `-iOS`. All cross-compatible and iOS Apple builds. 36 | * `-macOS`. Mac-native-only targets; otherwise use `-iOS`. 37 | * `-web`. A web app. 38 | 39 | _We are not currently including the language used to write CLI and web programs in the repo name, but please feature it clearly and prominently in the `README.md`._ 40 | 41 | **Examples:** GordianGuardian-iOS 42 | 43 | ### Categories 44 | 45 | Category repos should be of the form `Category-Name`. 46 | 47 | ** **Examples:** Gordian 48 | 49 | ### Forks 50 | 51 | Add a `-bccfork` suffix. 52 | 53 | ### Libraries 54 | 55 | Libraries should have a `bc-` prefix (to prevent name collisions), then the name, then a language suffix. Separate multiple languages in the suffix by slashes (`/`). The exact formatting of these library repo names should follow naming conventions appropriate to the library language: 56 | 57 | * C: bc-library-c 58 | * C++: bc-library-cpp 59 | * Java: bc-library-java 60 | * Rust: bc-library-rs 61 | * Swift: BCLibrarySwift 62 | 63 | ** **Examples:** bc-libs-java 64 | 65 | ### Web Sites 66 | 67 | Web sites should be of the form `web.site.url`. 68 | 69 | **Examples:** www.blockchaincommons.com 70 | 71 | ### Other Repos 72 | 73 | Other repos should be of the form `Repo-Name`. 74 | 75 | **Examples:** Airgapped-Wallet-Community, Learning-Bitcoin-from-the-Command-Line 76 | 77 | ### Old Repo Update Examples 78 | 79 | As examples, the following old repos could change as follows: 80 | 81 | * `bc-bytewords` -> `bc-bytewords-c` (library) 82 | * `bc-lethekit` -> `LetheKit` (app) 83 | * `bc-seedtool-cli` -> `seedtool-cli` (app) 84 | * `Bitcoin-Standup-Scripts` -> `bitcoinstandup-cli` (app) 85 | * `crypto-commons` -> `Crypto-Commons` (category) 86 | * `LifeHashTool` -> lifehash-cli (app) 87 | * `ResearchAgenda` -> `Research-Agenda` (other) 88 | * `spotbit` -> `Spotbit-web` (app) 89 | * `torgap` -> `Tor-Gap` (category) 90 | 91 | ## About-Info Conventions 92 | 93 | Each repo also features an "About" statement, which shows up on the master BCC repo listings. 94 | 95 | It should generally be of the form "[noun phrase]" where the phrase starts with "[specific-info general-category]", with libraries ending with "[in language]" and apps ending with "[for OS]". More farflung repos might not precisely match this convention, but should still be noun phrases. 96 | 97 | Generally, try to maintain consistency with existing repos for best clariry. 98 | 99 | **Examples:** Cryptographic Seed Tool for the command line, Blockchain Commons Research papers, Gordian products and technologies such as Wallet and Server, Sharded Secret Key Reconstruction (SSKR) reference library in C 100 | -------------------------------------------------------------------------------- /script-codeowners-results.md: -------------------------------------------------------------------------------- 1 | Ran: **2023-05-09** 2 | 3 | | Repo | Code Owners | Issues & PRs| 4 | |------|-------------|------------| 5 | | argp-standalone | | 1 | 6 | | bc-bech32 | ChristopherA | 2 | 7 | | bc-bip39 | ChristopherA, wolfmcnally | 1 | 8 | | bc-bytewords | ChristopherA | 0 | 9 | | bc-crypto-base | ChristopherA, wolfmcnally | 0 | 10 | | bc-dcbor-rust | ChristopherA, WolfMcNally | 0 | 11 | | bc-envelope-python | ChristopherA | 0 | 12 | | bc-envelope-rust | ChristopherA, WolfMcNally | 0 | 13 | | bc-libs-java | ChristopherA, jollyjoker992 | 2 | 14 | | bc-libwally-core | | 0 | 15 | | bc-libwally-java | ChristopherA, jollyjoker992 | 0 | 16 | | bc-libwally-swift | ChristopherA | 0 | 17 | | bc-lifehash | | 1 | 18 | | bc-lifehash-python | | 3 | 19 | | bc-shamir | ChristopherA, wolfmcnally | 3 | 20 | | bc-skeleton-cli | ChristopherA, wolfmcnally | 0 | 21 | | bc-slip39 | ChristopherA, wolfmcnally | 0 | 22 | | bc-sskr | ChristopherA, wolfmcnally | 8 | 23 | | bc-tor | | 0 | 24 | | bc-ur | ChristopherA, wolfmcnally | 5 | 25 | | bc-ur-java | ChristopherA, jollyjoker992 | 0 | 26 | | bc-xz | | 0 | 27 | | BCLibsSwift | | 0 | 28 | | BCLibwallySwift | | 0 | 29 | | BCSwiftApp | ChristopherA | 0 | 30 | | BCSwiftCrypto | ChristopherA | 1 | 31 | | BCSwiftDCBOR | ChristopherA | 1 | 32 | | BCSwiftEnvelope | ChristopherA | 0 | 33 | | BCSwiftEsplora | | 0 | 34 | | BCSwiftExampleSigner | | 0 | 35 | | BCSwiftFloat16 | ChristopherA | 0 | 36 | | BCSwiftFoundation | | 0 | 37 | | BCSwiftNFC | | 1 | 38 | | BCSwiftSecureComponents | | 1 | 39 | | BCSwiftSpotBit | | 0 | 40 | | BCSwiftTor | | 1 | 41 | | BCSwiftTorBase | | 1 | 42 | | BCSwiftWally | | 0 | 43 | | Bitcoin-Camouflage | ChristopherA | 0 | 44 | | Bitcoin-Standup-Scripts | ChristopherA | 9 | 45 | | blake3-swift | | 0 | 46 | | BlockchainCommonsLLC | | 0 | 47 | | bytewords-cli | ChristopherA, wolfmcnally | 0 | 48 | | cbor-lite | | 0 | 49 | | Community | | 94 | 50 | | crypto-commons | ChristopherA | 4 | 51 | | dcbor-cli | ChristopherA, WolfMcNally | 0 | 52 | | debian-ppa | ChristopherA | 0 | 53 | | deployment-scripts | ChristopherA | 4 | 54 | | did-method-onion | OR13, ChristopherA | 5 | 55 | | did-resolution-wg-charter | | 0 | 56 | | did-spec-registries | msporny, OR13 | 0 | 57 | | electrs | | 0 | 58 | | envelope-cli-swift | | 5 | 59 | | esplora | | 0 | 60 | | Gordian | ChristopherA | 9 | 61 | | Gordian-Developer-Community | ChristopherA | 6 | 62 | | GordianCosigner-iOS | ChristopherA | 19 | 63 | | GordianQRTool-iOS | ChristopherA | 24 | 64 | | GordianSeedTool-iOS | ChristopherA, wolfmcnally | 53 | 65 | | GordianServer-macOS | ChristopherA | 48 | 66 | | GordianSigner-Android | ChristopherA, cuongleqq | 5 | 67 | | GordianSigner-macOS | ChristopherA | 1 | 68 | | GordianWallet-iOS | ChristopherA | 26 | 69 | | GxEPD2 | | 0 | 70 | | Hyperconnectivity | | 0 | 71 | | iOS-Bitcoin | | 1 | 72 | | iOS-CBitcoin | | 0 | 73 | | iOS-GordianCoordinator | ChristopherA, wolfmcnally | 0 | 74 | | iOS-TorFramework | | 1 | 75 | | keytool-cli | ChristopherA, wolfmcnally | 6 | 76 | | law-and-advocacy | ChristopherA | 1 | 77 | | Learning-Bitcoin-from-the-Command-Line | | 12 | 78 | | lethekit | ChristopherA | 7 | 79 | | libbitcoinrpc | | 0 | 80 | | LifeHash | | 1 | 81 | | lifehash-cli | | 3 | 82 | | lifehash.info | | 0 | 83 | | LifeHashTool | ChristopherA, wolfmcnally | 0 | 84 | | mori-cli | ChristopherA | 1 | 85 | | musign-cli | ChristopherA | 2 | 86 | | Open-Development | | 16 | 87 | | Presentations-Template | | 0 | 88 | | Pseudonymity-Guide | | 0 | 89 | | QRCodeGenerator | ChristopherA, WolfMcNally | 0 | 90 | | QRCodeGeneratorDemo | ChristopherA, WolfMcNally | 0 | 91 | | Research | ChristopherA | 5 | 92 | | secp256k1-embedded | | 0 | 93 | | secp256k1-zkp.swift | | 0 | 94 | | Secure-Development-Setup-macOS | ChristopherA, Namcios | 2 | 95 | | secure-template | ChristopherA | 1 | 96 | | seedtool-cli | ChristopherA, wolfmcnally | 6 | 97 | | seedtool.info | Sjlver | 3 | 98 | | siliconsalon.info | | 1 | 99 | | SmartCustody | ChristopherA | 2 | 100 | | SmartCustodyBook | ChristopherA | 3 | 101 | | SmartCustodyWhitePapers | ChristopherA | 7 | 102 | | so-simple-theme | | 0 | 103 | | spotbit | ChristopherA | 18 | 104 | | sss | | 1 | 105 | | sweeptool-cli | ChristopherA | 5 | 106 | | Testimony | ChristopherA | 0 | 107 | | torgap | ChristopherA | 1 | 108 | | torgap-demo | ChristopherA | 0 | 109 | | torgap-opentimestamps | ChristopherA | 0 | 110 | | torgap-sig | ChristopherA | 0 | 111 | | torgap-sig-cli-rust | ChristopherA | 0 | 112 | | UniversalResources.info | ChristopherA | 0 | 113 | | URDemo | | 0 | 114 | | URKit | | 0 | 115 | | URUI | | 1 | 116 | | wips | ChristopherA | 0 | 117 | | WIPs-IETF-draft-deterministic-cbor | | 2 | 118 | | WIPs-IETF-draft-envelope | | 1 | 119 | | www.blockchaincommons.com | | 5 | 120 | | www.SmartCustody.com | | 0 | 121 | -------------------------------------------------------------------------------- /call-for-patrons.md: -------------------------------------------------------------------------------- 1 | In the last few years you have gotten to know me through my work, either as a digital civil liberties advocate, a decentralized identity expert, or a blockchain architect and digital assets security advisor. This may have been when I was working at Blockstream, supporting internet standards, speaking at a blockchain conference, interacting on Twitter as [@ChristopherA](https://twitter.com/ChristopherA), or writing one of my influential [blog posts](https://www.LifeWithAlacrity.com). 2 | 3 | I am now seeking your support for [Blockchain Commons'](https://www.BlockchainCommons.com) open infrastructure initiatives, and my own advocacy. 4 | 5 | Along with others experts from both the blockchain and decentralized identity communities, I founded Blockchain Commons a little more than two years ago. We've done important work on topics such as digital asset [#SmartCustody](https://www.SmartCustody.com) including a [free book](http://bit.ly/SmartCustodyBookV101), released bitcoin full-node tools such as [Bitcoin Standup](https://github.com/BlockchainCommons/Bitcoin-Standup), produced mobile apps such as [Fully Noded 2](https://github.com/BlockchainCommons/FullyNoded-2), created the DIY security hardware kit [LetheKit](https://github.com/BlockchainCommons/bc-lethekit), produced online blockchain development courses such as [Learning Bitcoin from the Command Line](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line), and supported a number of [college interns](https://decrypt.co/34555/how-bitcoin-dev-hub-building-future-free-software) for their first blockchain open-source projects. Our goal is to improve the infrastructure and knowledge base for blockchain technology, to grow the ecosystem and to benefit everyone. 6 | 7 | We are proudly a "not-for-profit" social benefit corporation committed to open source & open development and a defensive patent strategy. Our work has been financially supported solely by our patrons and individual contributors, including Andreas M. Antonopoulos, Gabriele Domenechini, Frederic Meyer, David Strayhorn, Mark S. Miller, Sean Moss-Pulz, Glenn Willen, Alexandre Linhares, and Trent McConaghy, as well as many small anonymous sponsors. Last year's #SmartCustody book was further supported by corporate patrons including Bitmark, Digital Contract Design, HTC Exodus, Adamant Capital, Beam Privacy, Catallaxy, Ledger, Unchained Capital, Winstead, Blockstream, Empowered Law, and Cryptotag. 8 | 9 | I'm hoping that you can join us, to support this open infrastructure work and spread the word to others who might also help. Please consider becoming a Sustaining Patron of Blockchain Commons by contributing Bitcoin at our [BTCPay Server](https://btcpay.BlockchainCommons.com) or becoming a [Github Sponsor](https://github.com/sponsors/BlockchainCommons) through monthly ongoing patronage in fiat. 10 | 11 | I'm also kicking off my personal campaign to solicit support specifically for my digital civil liberties, human rights privacy, and decentralized identity advocacy and related efforts in places like Wyoming, the Netherlands, Taiwan, and more. I am seeking sponsorships that start at $5 a month through [GitHub Sponsors](https://github.com/sponsors/ChristopherA) — and they are matching the first $5K! 12 | 13 | Your becoming a GitHub sponsor at any level can be particularly valuable because it creates social proof that can encourage other people, companies, and foundations to match your financial contribution! So please show your "badge" of honor by sponsoring Blockchain Commons at https://github.com/sponsors/BlockchainCommons or me personally at https://github.com/sponsors/ChristopherA. 14 | 15 | Separately for blockchain business and service providers, if you donate 1 BTC, or sign up as Sustaining Patron at GitHub ($1000/mo), we will accept a one-page non-bleed informative flier about your business or services for inclusion in the next edition of our #SmartCustody book. Your firm will be listed as a sponsor and, where appropriate, we will list your product or service as an option. (But even if you're not a blockchain business, or you want to sponsor us with a smaller amount, we encourage you to do so!) 16 | 17 | I also tremendously appreciate your personal endorsements on [Twitter](https://twitter.com/ChristopherA), on [LinkedIn ](https://www.linkedin.com/in/christophera/), or at other social media pointing to my GitHub sponsor pages, and otherwise helping me to spread the word about our good work. For examples of great endorsements, see these from [Mark Miller](https://twitter.com/marksammiller/status/1246528666151948288?s=21)), [Andreas Antonopoulos](https://twitter.com/aantonop/status/1154520625299410944?s=21), [Leon-Gerard Vandenberg](https://twitter.com/leon_vandenberg/status/1246540433695653888?s=21), [JW Weatherman](https://twitter.com/jwweatherman_/status/1246535216581300225?s=21), and [@Frogolocolypse](https://twitter.com/1stcrasscitizen/status/1246801134490025985?s=21). 18 | 19 | Finally, I also welcome you contributing to Blockchain Commons open infrastructure projects by sharing your knowledge, expertise, and time toward advancing digital civil liberties and a more open web. Contact me for how best we can collaborate together! 20 | 21 | Regards, 22 | 23 | -- Christopher Allen 24 | 25 | 26 | -------------------------------------------------------------------------------- /release-path.md: -------------------------------------------------------------------------------- 1 | # Development Phases 2 | 3 | The following is an overview of development phases for protocols and products at Blockchain Commons 4 | 5 | ## Research 6 | 7 | Items in the "Research" phase are still being considered and iterated. They represent thought experiments and protocols that we hope to eventually offer to the commons for development. They could include proofs of concept or napkin sketches. They are nowhere near ready for commercial development, only experimentation. 8 | 9 | These items primarily exist as Blockchain Commons Research ("BCR") papers in our [Research repo](https://github.com/BlockchainCommons/Research). These papers all feature semantic numbering, and any BCR with a number of less than 1.0 should be considered particularly immature, with the likelihood they will be notably changed. Even BCRs with a full 1.0 release should be considered unsettled into they have been upgraded to a [Wallet Improvement Proposal](https://github.com/BlockchainCommons/wips) ("WIP"). We often will do a full refactor at that point. 10 | 11 | Some applications, libraries, data formats, and demos may also be marked as "Research", in which case they should similarly be considered inappropriate for commercial work. 12 | 13 | ## Release-Path 14 | 15 | Once a concept has proven its fundamentals, and we have identified a path for its release (be it an application, a standard, a BIP, or something else) it is placed on the release path. This includes our [WIPs](https://github.com/BlockchainCommons/wips) and most of our repos. 16 | 17 | Each WIP or repo should be identified with its level of stability. 18 | 19 | ***Alpha.*** We are seeking interest and alignment with others, defining additional requirements, and exploring requirements for feature-completeness. There is still no guarantee of backward compatibility. We prefer to have at least two companies interested in implementing a protocol before advancing it from Research to Alpha Release-Path. 20 | 21 | ***Late Alpha.*** By the time a concept reaches late alpha, we have had some success with the idea, but it is still not feature-complete. By this time, we are trying to limit backward incompatibilities, but they may still occur. 22 | 23 | ***Community Review.*** Many projects will enter a Community Review stage between Alpha and Beta, when we ask the community for feedback. Obviously, let us know if you find any mistakes or problems. But also let us know if the API/UX meets your needs, if the functionality is easy to use, if the usage of any coding language feels properly standardized, and if the project solves any problems you are encountering when doing this kind of coding. Also let us know how it could be improved and what else you'd need for this to be just right for your usage. 24 | 25 | ***Beta.*** At this stage, we hope to stabilize the protocols and data formats to maintain compatibility, though there could still be surprises if we discover security issues. We may still be adding features. Security reviews may be in process at this point, or they may not yet have occurred. We prefer to have at least two companies who have implemented an idea before advancing it from Late Alpha to Beta. 26 | 27 | ***Feature-Complete.*** A product has reached its full feature set and is by now definitely undergoing security reviews if it has not already. 28 | 29 | ***Final.*** A product's security reviews are complete, and it should be considered entirely ready for usage. In addition, at least two companies must have shipped a product, to have proven any protocols or libraries. 30 | 31 | Repos will primarily be identified by these development phases; WIPs will additionally be identified by semantic numbering, with numbers of less than 1.0 being at best alpha. 32 | 33 | ## Unsupported Path 34 | 35 | Sometimes, repos previously on the release path may become unsupported due to the release of other repos, the disappearance of project leads, or other reasons. These repos may not be up to current security standards, and may even not work any more, though the exact reason for their becoming unsupported may vary and may be of note to people considering the repo. 36 | 37 | **Superseded:** This is a repo that has been replaced by a more up-to-date repo or one that we feel better covers the material in question. 38 | 39 | ***Unsupported:*** This is a repo that is no longer supported for reasons having nothing to do with the core content, possibly meaning that a project lead has moved on, or possibly that the project is just no longer relevant to the current ecosystem. If you'd like to become a new lead for the project, please file an issue. 40 | 41 | **Withdrawn:** This is a repo that contains material where we actively suggest against using the material because we feel that it has some flaw in it. 42 | 43 | ## Best Practices Standards for Release-Path 44 | 45 | We believe in creating and promoting best practices such as the [Core Infrastructure Initiative Best Practices Badge](https://github.com/coreinfrastructure/best-practices-badge). We have begun our own [Best Practices Standards for Blockchain Commons](release-path-standards.md), which we will ultimately use to assess whether each protocol or product meets the criteria for its level of release. We would appreciate your feedback and expansion of this work. 46 | -------------------------------------------------------------------------------- /Tweetstorms-Best-Practices.md: -------------------------------------------------------------------------------- 1 | # Best Practices for Blockchain Commons Tweetstorms 2 | 3 | ## Who Posts? 4 | 5 | Blockchain Commons Tweets generally come in three types: 6 | 7 | * @blockchaincmns 8 | * Content: 9 | * Quarterly Reports 10 | * Official releases 11 | * Format: Simple links and facts 12 | * Goal: To make official announcements 13 | 14 | * Creators 15 | * Content 16 | * Details for what a project does, (optionally) why, and (optionally) how 17 | * Be clear that these are reference tools tools to help developers to support interoperability and open infrastructure 18 | * Personal stories 19 | * Development Diaries 20 | * Format: Short or medium tweetstorms 21 | * Goal: To show enthusiasm for projects, to reveal details, and to draw attention to them 22 | 23 | * ChristopherA 24 | * Content 25 | * Regular spotlights on projects or categories 26 | * Regular spotlights on specifications and interoperability 27 | * Overviews of concerns & advancements in blockchain technology 28 | * Format: medium or long tweetstorms 29 | * Goal: to overview work at Block, to regularly touch bases on our projects, to be a futurist voice 30 | 31 | ### Who Retweets? 32 | 33 | * @blockchaincmns 34 | * Topics: everything by other accounts 35 | * Format: simple retweet of tweet or root of tweetstorm 36 | 37 | * ChristopherA 38 | * Topics: everything by other accounts 39 | * Format: Tweetstorm starting with RT 40 | * Add context 41 | * How project fits with goals of Blockchain Commons 42 | * How projects addresses issues in blockchain technology space 43 | * Where project is going in the future 44 | 45 | ## General Style 46 | 47 | * Include good photo, gif, or social preview on first tweet 48 | * A link to our repos should generally produce a prepared social preview 49 | * If there's not a social-media preview for a repo we want to link, we should create it 50 | * Make sure you introduce project for someone who's never seen it before 51 | * Be sure to link to the repo for the project you're talking about 52 | * You might also link to READMEs, docs, or other files, especially if you're talking about them specifically, or they've been recently created or updated 53 | * Provide photos, images, links and/or social previews on other tweets as possible 54 | * 50% or more is a good ratio 55 | * Possibly include images, usually found in `images` or `Images` of repo 56 | * Possibly link to different files in repo 57 | * Possibly link to www.blockchaincommons.com 58 | * Possibly link to relevent research papers: https://github.com/BlockchainCommons/Research 59 | * Possibly link master repos for [crypto-commons](https://github.com/BlockchainCommons/crypto-commons), [Gordian](https://github.com/BlockchainCommons/Gordian), and [torgap](https://github.com/BlockchainCommons/torgap) 60 | * Probaly link to developer communities (see below) 61 | * Connect developers back to our communities & encourage testing and participation. 62 | * AirGapped Wallet Discussions: https://github.com/BlockchainCommons/Airgapped-Wallet-Community/discussions or https://tinyurl.com/airgap-disc 63 | * Blockchain Commons Community: https://github.com/BlockchainCommons/Community 64 | * Appeal to become patrons 65 | * Our creators may not be comfortable with this, in which case this can be covered in the RT: 66 | * Blockchain Commons GitHub Sponsors: https://github.com/sponsors/BlockchainCommons 67 | * Blockchain Commons BTCPay: https://btcpay.blockchaincommons.com/ 68 | * Obviously: remember 280 characters max per tweet 69 | * Number the tweets if it's a storm: [X/Y] 70 | * Log It! 71 | * Link to your tweet at: https://github.com/BlockchainCommons/Community/blob/master/Tweetstorms.md 72 | 73 | ### Sample Appeals to Community 74 | 75 | _These are drawn from existing tweets, so some are very specific to certain topics._ 76 | 77 | > Blockchain Commons is not endowed, nor does it have any notable supply of bitcoins. We're running month to month with support from patrons. 78 | > 79 | > The more support we have, the more we can do, and the less we have, the less we can do. If you'd like to support our increased work, consider becoming a GitHub patron. https://github.com/sponsors/BlockchainCommons 80 | 81 | > Please support this course so that we can add teaching how to use the Lightning Network via the CLI, and more advanced topics like miniscript. Support the course by becoming an ongoing patron at https://github.com/sponsors/BlockchainCommons, starting at $20 a month. 82 | 83 | ### Sample Appeals to Patrons 84 | 85 | _These are drawn from existing tweets, so some are very specific to certain topics._ 86 | 87 | > We're looking forward to releasing our new #SmartCustody document, but in the meantime we'd love to hear your thoughts on the design of multisigs, either here or in our Wallet discussion community. https://github.com/BlockchainCommons/Airgapped-Wallet-Community/discussions 88 | 89 | > If you're a developer, we'd love to have your input on this work, so that we can push on additional features that will support everyone. Please join us in Blockchain Commons' Airgapped Wallet Community. https://github.com/BlockchainCommons/Airgapped-Wallet-Community/discussions 90 | 91 | #### List the Sponsors! 92 | 93 | If we appeal to new sponsors, we should list our current ones. 94 | 95 | This currently reads something like the following: 96 | 97 | ``` 98 | Thanks to current sustaining sponsors Bitmark (@BitmarkInc), Unchained Capital (@unchainedcap), and Blockchainbird (@bc1bird). [14/14] 99 | ``` 100 | -------------------------------------------------------------------------------- /release-dmg.md: -------------------------------------------------------------------------------- 1 | # How to Make an Ad-Hoc DMG Release for Mac 2 | 3 | ###### tags: `how-to` 4 | 5 | _To create a DMG for release:_ 6 | 7 | ## Create a Release Archive 8 | 9 | 1. In Xcode, ensure that the "Archive" sceheme produces a "Release" build configuration by clicking on the app name in the title bar and choosing "Edit Scheme" and then "Archive". (This should be set properly.) 10 | 11 | 2. Change the target from "My Mac" to "Any Mac". 12 | 13 | 3. Make sure you have the "Developer ID Application" cert for the team with private key. Someone who already has it will need to export it to you. If that can't be done, have the owner of the Apple account create a new Developer ID Application from a Cert Signing Request that you supply. 14 | 15 | 4. Choose "Product > Archive" to Archive. 16 | 17 | ## Notarize Your App 18 | 19 | 5. Choose "Distribute App" from the "Archives" screen, then use "Custom" [Next] / "Developer ID" for your method of distribution. Choose "Upload" and "Automatically Manage Signing" and (again) "Upload". (This is effectively ad-hoc release for the Mac: it doesn't go through the app store.) 20 | 21 | _If the Upload works, great, you should wait around a bit, and then your copy of the app you should be notarized. After you've been alerted that your app is notarized, choose "Distribute > Copy App" from the Organizer. Double-check the name as noted in 8a. Then skip to step 11._ 22 | 23 | _But Apple's upload functions for notarization and for submission of Apple apps have been flaky for years. If it doesn't upload, instead follow the following steps, 6-10:_ 24 | 25 | 6. "Export" your archive. (You can do this from the failed Upload screen, or you can just cut out the middle-man by choosing "Distribute App > Copy App" instead of attempting the constantly failing "Upload" at all, but if you do the latter, you'll need to create a zip of the app by hand before you go to step 9, so maybe it's better to just go through the failed-upload process.) 26 | 27 | ### One-Time: Setup an App-Specific Password 28 | 29 | 7. On a one-time basis, setup a 2FA password in your keychain to allow command-line running of the notarization tools: 30 | 31 | 7a. Generate a 2FA "app-specific password" for notarytool from the accountid Apple site: 32 | https://appleid.apple.com/account/manage 33 | 34 | Make sure to mark it down, because you won't be able to look it up again. 35 | 36 | 7b. Enter that app-specific password into your keychain: 37 | ``` 38 | $ xcrun notarytool store-credentials "AC_PASSWORD" --apple-id "" --team-id --password <2fa_pass_from_apple> 39 | ``` 40 | 7c. As noted, this is one time. Once you've got all this setup, you won't have to repeat step 7 on future distributions. 41 | 42 | ### Continue with Notarization 43 | 44 | 8. "cd" to your archive directory. 45 | 46 | 8a. At this time, you should probably make sure you're happy with the app name. It should be an app name with spaces, such as "Gordian Server". It should not have a version number. It should stay consistent across versions. 47 | 48 | 9. Run notary tool on the ZIP file found in the archive directory, using the credential you added to your keychain: 49 | ``` 50 | $ xcrun notarytool submit --keychain-profile "AC_PASSWORD" --wait --webhook "https://example.com/notarization" 51 | ``` 52 | 53 | 10. When it completes, staple your authorization to the `app` (not the `zip`). 54 | 55 | ``` 56 | $ xcrun stapler staple 57 | ``` 58 | 59 | ### Create Your DMG 60 | 61 | The `create-dmg` program is the easiest way to make an attractive DMG that is sized correctly. 62 | 63 | 11. If you haven't already, install `create-dmg` with Brew: 64 | ``` 65 | $ brew install create-dmg 66 | ``` 67 | 68 | 12. Use a command like the following to create your DMG: 69 | ``` 70 | $ create-dmg --volname "Gordian Server 1.0.1" --background ~/Dropbox/Blockchain\ Commons/Images/DMGs/drag.jpg --window-pos 200 120 --window-size 640 480 --icon-size 100 --icon "Gordian Server.app" 50 100 --hide-extension "Gordian Server.app" --app-drop-link 400 100 gordian-server-1.0.0.dmg ~/Desktop/Gordian\ Release/ 71 | ``` 72 | Adjust for the name of your App, the name of your DMG, and the name of your background image. You might potentially need to fiddle with the app position and the `app-drop-link` position, after you see what it looks like. 73 | 74 | 12a. Again, check on names. The name of the DMG should be a hyphen separated versioned variant of the name, e.g., gordian-server-1.0.0.dmg. The image it opens should similarly be versioned, but with spaces, e.g., "Gordian Server 1.0.0". 75 | 76 | ### Sign & Checksum 77 | 78 | 13. Sign your DMG 79 | ``` 80 | $ gpg --sign --armor --detach-sig 81 | ``` 82 | You'll need to change the DMG name as appropriate. 83 | 84 | Who signs? Right now the Release Manager and the Organization Owner are signing. If there's more than one signature, rename them: `your-app.user.pubkey.dmg.asc`. 85 | 86 | 14. Checksum your DMG 87 | ``` 88 | $ shasum > SHA256SUMS 89 | ``` 90 | You'll need to change the DMG name as appropriate. 91 | 92 | 15. Sign your Checksum 93 | ``` 94 | gpg --sign --armor --detach-sig SHA256SUMS 95 | ``` 96 | 97 | 16. Check your Signatures 98 | ``` 99 | $ gpg --verify 100 | gpg: error reading symlink '/proc/curproc/file': No such file or directory 101 | gpg: Signature made Wed Oct 27 09:31:57 2021 HST 102 | gpg: using RSA key A4889A09F9819D8C054004507EC6B928606F27AD 103 | gpg: Good signature from "Shannon Appelcline " [ultimate] 104 | 105 | $ gpg --verify SHA256SUMS.asc SHA256SUMS 106 | gpg: error reading symlink '/proc/curproc/file': No such file or directory 107 | gpg: Signature made Wed Oct 27 09:34:57 2021 HST 108 | gpg: using RSA key A4889A09F9819D8C054004507EC6B928606F27AD 109 | gpg: Good signature from "Shannon Appelcline " [ultimate] 110 | ``` 111 | ### Signing Alternative 112 | 113 | If you are signing with an SSH key instead of a GPG key, the process looks more like this: 114 | ``` 115 | $ ssh-keygen -Y sign -n file -f ~/.ssh/sign_id_ed25519-DragonBook.local-ShannonA-2024-01-31@github SHA256SUMS 116 | $ mv SHA256SUMS.sig SHA256SUMS.shannona.ssh-1oCAdW5UY7LtbO723rCxI3YqfFDWf2SqJpu6EebgaKM.sig 117 | ``` 118 | It can then be checked as follows: 119 | ``` 120 | $ cat SHA256SUMS | ssh-keygen -Y check-novalidate -n file -f ~/.ssh/sign_id_ed25519-DragonBook.local-ShannonA-2024-01-31@github.pub -s SHA256SUMS.shannona.ssh-1oCAdW5UY7LtbO723rCxI3YqfFDWf2SqJpu6EebgaKM.sig 121 | ``` 122 | 123 | ### New Release Test 124 | 125 | 17a. Test Out Creating a tag by hand 126 | 127 | ``` 128 | git tag -s v1.1.1 129 | ``` 130 | 131 | Test it with: 132 | 133 | ``` 134 | git tag -v v1.1.1 135 | ``` 136 | 137 | If it works, `git push` and then grab the tag when you do the release in #17, below. 138 | 139 | ### Create the Release & Upload 140 | 141 | 17. Create a new release on the releases page for your repo 142 | 143 | For example: 144 | ``` 145 | https://github.com/BlockchainCommons/GordianServer-macOS/releases 146 | ``` 147 | 148 | 18. Be sure to "Choose a Tag", type in the new tag for your release (e.g., "v1.0.0"), and then click "Create New Tag" at the bottom of that pop-up so that it actually gets created. 149 | 150 | 19. Add your DMG, your DMG signature, the SHASUM, and your SHASUM signature. 151 | 152 | When uploading the DMG for the release, be sure to upload the DMG file, *not* the opened Disk Image. 153 | 154 | 20. Announce the release! 155 | -------------------------------------------------------------------------------- /Tweetstorms.md: -------------------------------------------------------------------------------- 1 | # Blockchain Commons Tweetstorms 2 | 3 | This is a list of TWeetstorms for Blockchain Commons, with links to the first Tweet of each. 4 | 5 | * [Best Practices](Tweetstorms-Best-Practices.md) - best practices for writing tweets 6 | 7 | ## Best Practices 8 | 9 | * *Release Paths:* https://twitter.com/ChristopherA/status/1354879553059999744 (1/28/21) 10 | ## Fundraising 11 | 12 | * *Identimancer #1 NFT*: https://twitter.com/ChristopherA/status/1445482968869343238?s=20 (10/5/21) 13 | 14 | ## Gordian Cosigner 15 | 16 | * *Early Beta Release* https://twitter.com/ChristopherA/status/1362489390308630528 (2/18/21) 17 | * *Integration with LetheKit* https://twitter.com/gorazdko/status/1377253593158402053 (3/31/21) 18 | * *Comments:* https://twitter.com/ChristopherA/status/1377327244465500160 (3/31/21) 19 | 20 | ## Gordian Server 21 | 22 | * *1.0*: https://twitter.com/ChristopherA/status/1453653837978365958 (10/27/21) 23 | 24 | ## Gordian Wallet 25 | 26 | * *Introduction*: https://twitter.com/ChristopherA/status/1288160195382611968 (7/28/20) 27 | * *SSKR*: https://twitter.com/GordianWallet/status/1310767147774214145 (9/29/20) 28 | * *Gordian System*: https://twitter.com/GordianWallet/status/1320595618725679107 (10/26/20) 29 | 30 | ## Gordian Seed Tool 31 | 32 | * *1.0*: https://twitter.com/ChristopherA/status/1415762450280976384 (7/15/21) 33 | * *1.2*: https://twitter.com/ChristopherA/status/1435287614785941508 (9/7/21) 34 | * *1.2.1*: https://twitter.com/BlockchainComns/status/1443389265379934212 (9/29/21) 35 | * *1.3*: https://twitter.com/ChristopherA/status/1478067332962349056 (1/3/22) 36 | * *1.4*: https://twitter.com/BlockchainComns/status/1504265676692680704 (3/16/22) 37 | * *Discount*: https://twitter.com/ChristopherA/status/1477927558884716547 (1/2/22) 38 | * *1.5: https://twitter.com/ChristopherA/status/1527001028444311552* (5/18/22) 39 | * 40 | ## Interns 41 | 42 | * *Summer 2021 / HRF Grant* https://twitter.com/ChristopherA/status/1366880813845909506 (3/2/21) 43 | * *Summer 2021 Reminder* https://twitter.com/ChristopherA/status/1379864030853038080 (4/7/21) 44 | * *Summer 2022 Announcement* https://twitter.com/ChristopherA/status/1496912289722560513 (2/24/22) 45 | * *Summer 2022 Projects:* https://twitter.com/ChristopherA/status/1511765254744682499 (4/26/22) 46 | 47 | ## Learning Bitcoin from the Command Line 48 | 49 | * *Release 1.0*: https://twitter.com/christophera/status/1296126832010436609 (8/19/20) 50 | * *Chapter 15-17*: https://twitter.com/ChristopherA/status/1313177516308230146 (10/5/20) 51 | * *Release 2.0*: https://twitter.com/christophera/status/1322256471296339968?s=21 (10/30/20) 52 | * *Translations*: https://twitter.com/ChristopherA/status/1466101784590442496 (12/1/21) 53 | 54 | ## LetheKit 55 | 56 | * *First video*: https://twitter.com/gorazdko/status/1321399414192279553 (10/28/20) 57 | * *Integration with GCS* https://twitter.com/gorazdko/status/1377253593158402053 (3/31/21) 58 | * *Comments:* https://twitter.com/ChristopherA/status/1377327244465500160 (3/31/21) 59 | 60 | ## LifeHash 61 | 62 | * *CLifeHash* https://twitter.com/WolfMcNally/status/1358520354021335041 (2/7/21) 63 | 64 | ## Partnerships 65 | 66 | * *COPA*: https://twitter.com/ChristopherA/status/1326243584085909505 (11/10/20) 67 | 68 | ## RWOT 69 | 70 | * *Salon 1*: https://twitter.com/ChristopherA/status/1354545557222486016 (1/27/21) 71 | 72 | ## Quarterly Reports 73 | 74 | * *Q4, 2020 Report:* https://twitter.com/BlockchainComns/status/1347274478502350848 (1/7/21) 75 | * *Comments:* https://twitter.com/ChristopherA/status/1347280840879861760 (1/7/21) 76 | * *Q1, 2021 Report:* https://twitter.com/ChristopherA/status/1382782509398650881 (4/15/21) 77 | * *Q2, 2021 Report:* https://twitter.com/ChristopherA/status/1421151833205002250 (7/30/21) 78 | * *Q3, 2021 Report:* https://twitter.com/christophera/status/1454174999644831745 (10/29/21) 79 | * *2021 in Review:* https://twitter.com/ChristopherA/status/1478803491019583494 (1/5/22) 80 | * *Q1, 2022 Report:* https://twitter.com/ChristopherA/status/1514566387053654020 (4/14/22) 81 | 82 | ## Self-sovereign Identity 83 | 84 | * *Two-year Report.* https://twitter.com/ChristopherA/status/989120215702261761 (4/25/18) 85 | * *Rebooting Web of Trust* https://twitter.com/ChristopherA/status/1354545557222486016 (1/27/20) 86 | * *Digital Identity Act*: https://twitter.com/ChristopherA/status/1374488043835387910 (3/23/21) 87 | * *Principal Authority*: https://twitter.com/ChristopherA/status/1438258074188353537 (9/15/21) 88 | 89 | ## Silicon Salon 90 | 91 | * *Silicon Salon Announcement:* https://twitter.com/ChristopherA/status/1524934871637819392 (5/12/22) 92 | * *Silicon Salon 1:* https://twitter.com/ChristopherA/status/1532238387280629760 (6/1/22) 93 | 94 | ## #SmartCustody 95 | 96 | * *#SC1.0: Bitcoin Valuation* https://twitter.com/ChristopherA/status/1354485791154528261?s=20 (1/27/21) 97 | * *#SC1.0: Full Info* https://twitter.com/ChristopherA/status/1267560481855639553 (6/1/20) 98 | * *Case Studies* https://twitter.com/ChristopherA/status/1491828864753930240 (2/10/22) 99 | * *Convenience* https://twitter.com/ChristopherA/status/1280230853117804545 (7/6/20) 100 | * *Process Fatigue* https://twitter.com/ChristopherA/status/1280953891006197760 (7/8/20) 101 | * *Key Fragility* https://twitter.com/ChristopherA/status/1280623626287341568 (7/8/20) 102 | * *Transaction Errors* https://twitter.com/ChristopherA/status/1281291296645058560 (7/9/20) 103 | * *User Error* https://twitter.com/ChristopherA/status/1281668262502166534 (7/10/20) 104 | * *Privacy* https://twitter.com/ChristopherA/status/1282736099983388672 (7/13/20) 105 | * *Correlation* https://twitter.com/ChristopherA/status/1283124120444481537 (7/14/20) 106 | * *Loss of Fungibility* https://twitter.com/ChristopherA/status/1283837467552972801 (7/16/20) 107 | * *Censorship* https://twitter.com/ChristopherA/status/1283539387016519681 (7/16/20) 108 | * *Sponsors* https://twitter.com/ChristopherA/status/1284213839337189377 (7/17/20) 109 | * *Multisig* https://twitter.com/ChristopherA/status/1366439882965483520?s=20 (3/1/21) 110 | 111 | ## SSKR 112 | 113 | * *SSKR for Developers:* https://twitter.com/ChristopherA/status/1436057197394350095 114 | * *SSKR for Users:* https://twitter.com/ChristopherA/status/1435664581536346121?s=20 115 | 116 | ## Testimony 117 | 118 | * *Wyoming: eResidency:* https://twitter.com/ChristopherA/status/1537084465112940544 (6/15/22) 119 | * *Wyoming: Private Keys:* https://twitter.com/ChristopherA/status/1537092647507988480 (6/15/22) 120 | * *Wyoming: WRDA:* https://twitter.com/ChristopherA/status/1536805285712437249 (6/15/22) 121 | 122 | ## Torgap 123 | 124 | * *Torgap Architecture*: https://twitter.com/ChristopherA/status/1337487024857616384 (12/11/20) 125 | 126 | ## UR 127 | 128 | * *crypto-request/crypto-response*: https://twitter.com/christophera/status/1506275746288857088?s=21 (3/22/22) 129 | * *URs on e-paper*: https://twitter.com/gorazdko/status/1311761068868468736 (10/1/20) 130 | * *UR Overview*: https://twitter.com/ChristopherA/status/1336393186701266945 (12/8/20) 131 | * *UR Crypto Request/Response*: https://twitter.com/christophera/status/1367554235139641344?s=21 (3/4/21) 132 | 133 | ## Videos 134 | 135 | * *Technology Overview Video*: https://twitter.com/ChristopherA/status/1392847322904547328 (5/13/21) 136 | 137 | ## Other 138 | 139 | * *Codifying Best Practices* https://twitter.com/ChristopherA/status/1354879553059999744 (1/28/21) 140 | 141 | # Blockchain Mailing List Posts 142 | 143 | * 5/13/21: [Introductory Video on Blockchain Commons Tech Now Available](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-May/018927.html) 144 | 145 | -------------------------------------------------------------------------------- /standard-communications-text.md: -------------------------------------------------------------------------------- 1 | # Blockchain Commons Sponsor Focused Copy 2 | 3 | ## Final Copy 2020-04-09 4 | 5 | ### All Projects Short List 6 | 7 | * #SmartCustody — documents and tools to better secure your digital assets. 8 | * #BitcoinStandup — tools and standards for easy creation of your own Bitcoin-Core full node on your Mac or Linux or on a cloud VPS. 9 | * #FullyNoded2 — an iOS multisig wallet powered by a Tor V3 hidden service and connected to your own personal full node. 10 | * #LetheKit — DIY hardware box and SDK for airgapped cryptography and offline master key management. 11 | * Learning Bitcoin from the Command Line — tutorials on programming with bitcoin-cli, lightning-cli, and RPC. 12 | * Cryptographic Libraries — C-based implementations of BIP39, Shamir Secret Sharing, SLIP39, and more. 13 | 14 | * [ ] These need to match short description in git repository top of page 15 | * [ ] Text in README.md need to match as well. 16 | 17 | ### All Projects w/ Paragraphs List 18 | 19 | * [ ] These need to match copy in git repository top of page 20 | * [ ] Body copy in README.md need to match as well. 21 | 22 | 23 | ### Personal Sponsorship Appeal 24 | (From @ChristopherA via Twitter DM or email) 25 | 26 | Can I get your PERSONAL monthly patronage to support my work at @BlockchainComns through a GitHub sponsorship of $20 or $100 a month? 27 | 28 | Blockchain Commons is proudly a "not-for-profit" social benefit corporation committed to open source & open development. Our work is funded entirely by donations and collaborative partnerships with people like you. Every contribution will be spent on building open tools, technologies, and techniques that sustain and advance blockchain and internet security infrastructure and promote an open web. 29 | 30 | Here are some of our current projects: 31 | 32 | * #SmartCustody — documents and tools to better secure your digital assets. 33 | * #BitcoinStandup — tools and standards for easy creation of your own Bitcoin-Core full node on your Mac or Linux or on a cloud VPS. 34 | * #FullyNoded2 — an iOS multisig wallet powered by a Tor V3 hidden service and connected to your own personal full node. 35 | * #LetheKit — DIY hardware box and SDK for airgapped cryptography and offline master key management. 36 | * Learning Bitcoin from the Command Line — tutorials on programming with bitcoin-cli, lightning-cli, and RPC. 37 | * Cryptographic Libraries — C-based implementations of BIP39, Shamir Secret Sharing, SLIP39, and more. 38 | 39 | We also offer services to improve the open web's security infrastructure: 40 | 41 | * Security Reviews — risk-based assessments of custody methodologies, operational security procedures, and layer-2 protocols such as payment channels. 42 | * Infrastructure — support of Tor exit nodes and other blockchain infrastructure & tools. 43 | * Project Support — contractual support of our projects such as #BitcoinStandup, #FullyNoded2, and #LetheKit. 44 | 45 | These are just the beginning! Blockchain Commons is also working on identity wallets, zero-knowledge curve-operation proofs, advanced cryptographic primitives such as Schnorr, MuSig, and scriptless scripts, and in general establishing multi- and cross-blockchain standards. 46 | 47 | By supporting Blockchain Commons, you are also supporting my personal advocacy with legislators & regulators in Wyoming, the Netherlands, and Taiwan for better digital-asset custody regulations & privacy laws, as well as my efforts to advance human-rights privacy & decentralized identity in standards groups such as #W3C. 48 | 49 | I really need your public support on our GitHub Sponsors page. GitHub is matching the first $5,000 and YOUR public endorsement will help in my fundraising discussions with foundations and other organizations. 50 | 51 | Key blockchain figures like Andreas M. Antonopoulos (@aantonop), Bitcoin Core contributors like Bryan Bishop (@kanzure), Glenn Willem (@gwillen), and Mark Friedenbach (@MarkFriedenbach), internet security luminaries like Mark Miller (@erights), and blockchain companies like @Avanti & @Bitmark have already signed up as sponsors and public supporters. I would like to see your name added to that page. 52 | 53 | Can I count on YOUR patronage? Join me on the Blockchain Commons GitHub Sponsors page: 54 | https://github.com/sponsors/BlockchainCommons 55 | 56 | Can I count on YOUR personal endorsement of my work? Like this tweet by Mark Miller (@erights) pointing to my Sponsors page: https://twitter.com/marksammiller/status/1246528666151948288?s=21 57 | 58 | Thank you! 59 | 60 | ### Github Sponsor Short bio (250 characters) 61 | 62 | Blockchain Commons a "not-for-profit" social benefit corporation committed to open source & open development, building tools, technologies, and techniques to sustain and advance blockchain and internet security infrastructure and promote an open web. 63 | 64 | ### Github Sponsor Page 65 | 66 | [Blockchain Commons](https://www.BlockchainCommons.com) is proudly a "not-for-profit" social benefit corporation committed to open source & open development. Our work is funded entirely by donations and collaborative partnerships with people like you. Every contribution will be spent on building open tools, technologies, and techniques that sustain and advance blockchain and internet security infrastructure and promote an open web. 67 | 68 | Here are some of our current projects: 69 | 70 | * [#SmartCustody](https://www.smartcustody.com/) — documents and tools to better secure your digital assets. 71 | * [#BitcoinStandup](https://github.com/BlockchainCommons/Bitcoin-Standup) — tools and standards for easy creation of your own Bitcoin-Core full node on your Mac or Linux or on a cloud VPS. 72 | * [#FullyNoded2](https://github.com/BlockchainCommons/FullyNoded-2) — an iOS multisig wallet powered by a Tor V3 hidden service and connected to your own personal full node. 73 | * [Learning Bitcoin from the Command Line](https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line) — tutorials on programming with bitcoin-cli, lightning-cli, and RPC. 74 | * [#LetheKit](https://github.com/BlockchainCommons/bc-lethekit) — DIY hardware box and SDK for airgapped cryptography and offline master key management. 75 | * [#Seedtool-cli](https://github.com/BlockchainCommons/bc-seedtool-cli) — Cross-platform command-line C-based implementation for safe master key generation with support of BIP39 and SLIP39. 76 | * Cryptographic Libraries — C-based implementations of [BIP39](https://github.com/BlockchainCommons/bc-bip39), [Shamir Secret Sharing](https://github.com/BlockchainCommons/bc-shamir), [SLIP39](https://github.com/BlockchainCommons/bc-slip39), and more. 77 | 78 | We also offer services to the community improve the open web's security infrastructure: 79 | 80 | * Security Reviews — risk-based assessments of custody methodologies, operational security procedures, and layer-2 protocols such as payment channels. 81 | * Infrastructure — support of Tor exit nodes and other blockchain infrastructure & software. 82 | * Project Support — contractual support of our open source projects such as #BitcoinStandup, #FullyNoded2, and #LetheKit. 83 | 84 | These are just the beginning! Blockchain Commons is also working on identity wallets, social-recovery techniques, zero-knowledge curve-operation proofs, advanced cryptographic primitives such as Schnorr, MuSig, and scriptless scripts, and in general establishing multi- and cross-blockchain standards. 85 | 86 | To financially support further development at Blockchain Commons, please consider becoming a Sponsor here at GitHub, as they are matching the first $5,000. However, you can alternatively support Blockchain Commons and our vision of the open web with Bitcoin via our [BTCPay](https://btcpay.blockchaincommons.com/) contribution page. 87 | 88 | Blockchain Commons was founded by Christopher Allen (GitHub: [@ChristopherA](https://github.com/ChristopherA) & Twitter: [@ChristopherA](https://twitter.com/ChristopherA)) who acts as Principal Architect & Executive Director. Christopher is also the founder of [Rebooting the Web Of Trust](https://www.weboftrust.info/) a non-profit supporting human rights decentralized identity. 89 | 90 | ### BlockchainCommons/secure-template (used to create new repos) 91 | 92 | Financial Support 93 | 94 | `$projectname` is a project of [Blockchain Commons](https://www.blockchaincommons.com/). We are proudly a "not-for-profit" social benefit corporation committed to open source & open development. Our work is funded entirely by donations and collaborative partnerships with people like you. Every contribution will be spent on building open tools, technologies, and techniques that sustain and advance blockchain and internet security infrastructure and promote an open web. 95 | 96 | To financially support further development of `$projectname` and other projects, please consider becoming a Patron of Blockchain Commons through ongoing monthly patronage as a [GitHub Sponsor](https://github.com/sponsors/BlockchainCommons); your pledges are currently matched by GitHub, up to $5,000. You can also support Blockchain Commons with bitcoins at our [BTCPay Server](https://btcpay.blockchaincommons.com/). 97 | 98 | Contributing 99 | 100 | We encourage public contributions through issues and pull requests! Please review [CONTRIBUTING.md](./CONTRIBUTING.md) for details on our development process. All contributions to this repository require a GPG signed [Contributor License Agreement](./CLA.md). 101 | 102 | Questions & Support 103 | 104 | As an open-source, open-development community, Blockchain Commons does not have the resources to provide direct support of our projects. If you have questions or problems, please use this repository's [issues](./issues) feature. Unfortunately, we can not make any promises on response time. 105 | 106 | If your company requires support to use our projects, please feel free to contact us directly about options. We may be able to offer you a contract for support from one of our contributors, or we might be able to point you to another entity who can offer the contractual support that you need. 107 | -------------------------------------------------------------------------------- /TODO-Shannon.md: -------------------------------------------------------------------------------- 1 | # Shannon's Open Tasks 2 | 3 | _Web/Repo Tasks (Small):_ 4 | 5 | 1. * [ ] Set policy for closing repos without leaders 6 | 1. * [ ] Regularly assess old repos that may be defunct 7 | 1. * [ ] Update members on community page 8 | 1. * [ ] Update https://github.com/BlockchainCommons/Community/blob/master/standard-communications-text.md 9 | 1. * [ ] Clean Out HackMD (P***) 10 | 1. * [ ] Flag Unpublished in HackMD 11 | 1. * [ ] Any Feedback on https://github.com/BlockchainCommons/Community/issues/62 12 | 1. * [ ] Coordinate W's Tech Excerpts (from big video) 13 | 1. * [ ] Added newest testimony (Sign, email) 14 | 1. * [ ] Review https://twitter.com/ChristopherA/status/1435664587479650308 for messaging for other docs 15 | 1. * [ ] Review & Update C's LinkedIn Profile 16 | 17 | _Admin:_ 18 | 19 | 1. * [ ] Get Access to Team Email 20 | 1. * [ ] Get Access to Accounting Email 21 | 1. * [ ] Get Access to Bank Account 22 | 1. * [ ] Get Access to Credit Card 23 | 1. * [ ] Get Access to Multisig 24 | 25 | _Yearly:_ 26 | 27 | 1. * [ ] Revise Yearly 28 | 29 | _Lifehash_ 30 | 31 | 1. * [ ] Link Articles in LifeHash Repo to Crypto Commons Repo 32 | 1. * [ ] Add bc-lifehash to Crypto Commons Repo 33 | 34 | 35 | _BTCPay:_ 36 | 37 | 1. * [ ] Move BTCPay to New Account (2022): 1 of 2 38 | 1. * [ ] Investigate Lightning 39 | 1. * [ ] Enable Lightning (low-priority) 40 | 41 | _SmartCustody:_ 42 | 43 | 1. * [ ] Write about Defining/Creating Adversaries 44 | 1. * [ ] Recovery of Multisigs Standards 45 | * [ ] Need Standards 46 | * [ ] Storing Metadata 47 | * [ ] Working with Tap Root 48 | * [ ] Not Having SPF 49 | 50 | _Possible Grants:_ 51 | 52 | 1. * [ ] Reach Out About #SC 2 (PRI) 53 | 1. * [ ] Ethereum / NFTs 54 | 1. * [ ] Community Membership / Collaboration 55 | 56 | _CryptoRequest:_ 57 | 58 | 1. * [ ] Release CryptoReQuest Article (start of December) 59 | 60 | _Gordian Server:_ 61 | 62 | 1. * [ ] Put Gordian Server in LBTCftCL (requires PATH) 63 | 1. * [ ] Incorporate RPC PR (pending) 64 | 65 | _Learning Bitcoin:_ 66 | 67 | 1. * [ ] Announce Weekly LBTCftCL Seminars (early January) 68 | 1. * [ ] Article? 69 | 1. * [ ] Add diagram of forks & branches to TRANSLATING 70 | 1. * [ ] First LBTCftCL Seminar (January 19th) 71 | 72 | _Secure Development_ 73 | 74 | 1. * [ ] Line edit Pseudonymity Guide, one section at a time. (U: Maybe Wednesday) 75 | * [ ] Verify section by section that there isn't work that he's planning 76 | 1. * [ ] Make sure Main README says how to run scripts 77 | 1. * [ ] Do We Want to talk about Guide First? 78 | * [ ] What are use cases? Even non-pseudonymous people who are interacting with pseudonyms. 79 | * [ ] Does Pseudonymity Guide Overlap into Secure Development? 80 | * [ ] Supply chain attacks? Liability? Physical Threats in Less Secure Countries? 81 | * [ ] Cover Thease Reasons? https://twitter.com/ChristopherA/status/1450971497174999041?s=20 82 | 83 | _Repo Maintenance Tasks:_ 84 | 85 | 1. * [ ] Better standards for labels on PRs and issues 86 | 1. * [ ] Better topics for Community Discussion Categories? 87 | 1. * [ ] Test Main Web Pages, GitHub Pages in Twitter Validator https://cards-dev.twitter.com/validator 88 | 1. * [ ] Change Seedtool to Seed Tool throughout repos 89 | 1. * [ ] Make community logo work in GitHub dark mode 90 | 1. * [ ] See if We Should Have Vulnerability Disclosure Info in our Repos, Per https://openssf.org/blog/2021/09/27/announcing-the-openssf-vulnerability-disclosure-wg-guide-to-disclosure-for-oss-projects/ 91 | 1. * [ ] Do we want to have a blockchain commons shared GPG key? 92 | 1. * [ ] Archive vs Update Old Projects Decisions? 93 | * [ ] Itemize Them 94 | * [ ] Decide 95 | 96 | _Web/Repo Tasks (Large):_ 97 | 98 | 1. * [ ] Design UniversalResources.info 99 | 100 | _Community/Patron Tasks:_ 101 | 102 | 1. * [ ] Add to Airgapped README.md links for UR overview and other topics, repos, and important discussions, that might be needed by a newly arrived airgapped community person (Issue [#66](https://github.com/BlockchainCommons/Airgapped-Wallet-Community/issues/66)) 103 | 104 | _Standup Scripts:_ 105 | 106 | 1. * [ ] Try to get j's better scripting back on track 107 | 108 | 109 | _Overview:_ 110 | 111 | 1. * [ ] Review V's Notes (week of September 19) 112 | 1. * [ ] Review Roadmap for Rest of Year (week of September 19) 113 | 1. * [ ] Related to roadmap is review if our strategy is current https://github.com/BlockchainCommons/Community/blob/master/Strategies.md 114 | 1. * [ ] Discuss Vinay's post-mortem recommendations 115 | 1. * [ ] Vinay would like to volunteer againt if we in particular focusing on "responsible key management" and funding opportunities in ethereum community for that. 116 | 117 | _Writing Tasks:_ 118 | 119 | 1. * [ ] Write About Writing Use Cases (SOON) 120 | * [ ] Write Some Use Cases for Our Usage 121 | 3. * [ ] Write about Object Identity BLock (OIB) 122 | 4. * [ ] Why Are Web Assembly & Rust Strategy Important & What Are Those Strategies? 123 | 5. * [ ] Improve Docs on Signing CLA 124 | 6. * [ ] Q4 Report (DECEMBER) 125 | 7. * [ ] Write about SSKR for Identity Developers in W3C-CCG: keys in browsers, don't necessarily use BIP39 126 | 8. * [ ] Write About Autonomy Chart 127 | 9. * [ ] Write Release Procedures for iOS 128 | 10. * [ ] Puzzle through what do to unpublished Open Development draft https://hackmd.io/md7blDMZQjCmP0qB7k1iiQ. @ChristopherA's biggest concern is that the principles are missing something, or are not quite right, or at wrong level (aren't principles but something else). 129 | 130 | _Writing Tasks (Small):_ 131 | 132 | 1. * [ ] Add `xfp` to multisig articles: the [fingerprint/path/to/key]xpub is increasingly called an "xfp" = extended fingerprint. We've not been calling it that. 133 | 134 | _Tweetstorms_ 135 | 136 | 1. * [ ] Tweetstorm OIBs, Seedtool 137 | 1. * [ ] BTCR: Article & Tweetstorm based on https://the-rubric.castos.com/episodes/the-granddaddy-of-dids, with quotes & links 138 | 139 | _#SC:_ 140 | 141 | 1. * [ ] #SC for NFTs (once we have a plan) 142 | 143 | _Video Tasks:_ 144 | 145 | 1. * [X] Create Images for Long QR Tool Video 146 | * [ ] Add Slides Requested by C. 147 | * [ ] Add Title & Final from W. 148 | * [ ] Release to Youtube 149 | * [ ] Write Tweetstorm to go with it 150 | 151 | _Release Manager Tasks:_ 152 | 153 | 1. * [ ] Work with Fastlane 154 | * [ ] Install 155 | * [ ] Use for Seedtool Release 156 | * [ ] Integrate for use with QRTool 157 | * [ ] Integrate for use with Cosigner 158 | 159 | _Cosigner:_ 160 | 161 | 1. * [ ] Prepare Cosigner for Release 162 | * [ ] Withdraw February Build 163 | * [ ] Update Store Text from Issue 164 | * [ ] Remove Front-Page Discussion of Alpha/Testnet 165 | * [ ] Make Mainnet the Default 166 | * [ ] Check Rest of Text 167 | * [ ] Write Mini-Manual 168 | * [ ] Link to Mini-Manual 169 | * [ ] QA For iOS 170 | * [ ] Submit for iOS w/full notes (manual) for Apple 171 | * [ ] A for MacOS 172 | * [ ] Submit for MacOS w/full notes (manual) for Apple 173 | 1. * [ ] Write Integration Manual for Cosigner & Guardian 174 | 1. * [ ] Write Integration Manual for Cosigner & Wallet (if it becomes more active) 175 | 1. * [ ] Write Cosigner Article 176 | * [ ] Write Tweetstorm to go with it 177 | 1. * [ ] Write Cosigner Mini-Manual 178 | * [ ] Write Tweetstorm to go with it 179 | 1. * [ ] Produce Short Cosigner Video 180 | * [ ] Write Script for Short Cosigner Video 181 | * [ ] Create Images for Short Cosigner VIdeo 182 | * [ ] Write Tweetstorm to go with it 183 | 1. * [ ] Produce Long Cosigner Video 184 | * [ ] Write Script for Long Cosigner Video 185 | * [ ] Create Images for Long Cosigner VIdeo 186 | * [ ] Write Tweetstorm to go with it 187 | 1. * [ ] Proof https://github.com/BlockchainCommons/GordianCosigner-iOS/pull/43 188 | 189 | _Videos_ 190 | 191 | _Jekyll Tasks_ 192 | 193 | 1. * [ ] Link Anchors for Headers on Web Pages 194 | 195 | ## Stale Tasks 196 | 197 | _Writing Tasks:_ 198 | 199 | 1. * [ ] Proceed on Gordian Seal 200 | * [ ] Check in with M. 201 | * [ ] Create Mock-up Landing Page 202 | * [ ] Mock Up Logo 203 | * [X] Give Logo + Short to M. 204 | * [ ] Collect Info Needed for 99d. 205 | * [ ] Link Youtube videos in places like: 206 | * [ ] ? 207 | 1. * [ ] Design pages for four Gordian principles that describe sub principles and list how different reference apps meet those principles. 208 | * What is principle? 209 | * How did we apply it? 210 | * What other things fall into principle? (no app does it yet) 211 | 1. * [ ] Write SmartContract Article, on Signature, Vaults, Covenants 212 | * [ ] What are they? 213 | * [ ] What are they good for? 214 | * [ ] New Flags? 215 | * [ ] UTXO Tricks? 216 | * https://raghavsood.com/blog/2018/06/10/bitcoin-signature-types-sighash 217 | * https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018615.html 218 | * https://arxiv.org/abs/2006.16714 219 | * https://pinboard.in/u:ChristopherA/t:vault/ 220 | * https://bitcoinmagazine.com/technical/noinput-class-bitcoin-soft-fork-simplify-lightning 221 | 1. * [ ] Expand Timelock Work 222 | * [ ] Edit Timelock Article 223 | * [ ] Write about script 224 | * [ ] Write about rust library creation 225 | 1. * [ ] Potential Article: Identifying Stuff, LifeHash, Short Hex, Name 226 | * Talk with W. about why he did things & the UI of his choices (why anything is in specific places0 227 | 1. * [ ] Article: Why We Choose BSD+ Patentic and Creative Commons By 228 | 1. * [ ] Talk with C. about SSKR vocabulary (shard, share, deck, etc) 229 | 230 | _Video Tasks:_ 231 | 232 | 1. * [ ] Consider 3-5 minute short videos 233 | 234 | _Web/Repo Tasks:_ 235 | 236 | 1. * [ ] Consider https://bitcoin.design/guide/ for language & pointers to our work 237 | 1. * [ ] Clean up Bean Count repo, so that it's more appropriate for Documentation 238 | 239 | _Tweet Tasks:_ 240 | 241 | 1. * [ ] Short 2-3 Tweet Mini-Storms on BCC Content 242 | 243 | _Gordian Wallet:_ 244 | 245 | ## Pending 246 | 247 | 1. * [ ] Look at Wallets 248 | * [ ] ColdCard 249 | * [ ] BlueWallet 250 | * [ ] Spectre's Desktop App 251 | * [ ] Capture Info: 252 | 1. * [ ] Gordian Co Signer Docs (after crypto-request specification) 253 | * [ ] Full manual 254 | * [ ] How to Use with Core 255 | * [ ] How to Use with Cold 256 | * [ ] How to Use with Gordian 257 | 1. * [ ] GG Docs (next week?) 258 | 1. * [ ] Set Up Monitoring of BCC Machines? 259 | 1. * [ ] Review adding YAML schema info to markdown files, initially LBTCftCL, and testing against Google. See https://www.software.ac.uk/resources/guides/adding-schema-dot-org 260 | 1. * [ ] Gordian Signer Manual 261 | * Pending: UX Rev (mid-Jan?) 262 | 1. * [ ] Explain why Engagement Model is Important & How TO Do It & package that with Ruby 1.0.0 263 | * Engagement Model is meant to show the human experience. 264 | * There should be a System Document showing flows, which is somewhat orthogonal to the human experience of the Engagement Model 265 | * But the Engagement a way to ensure that we have all the pieces when we get started, and to make it possible for outsiders to understand what’s going on 266 | * Forces us to look at the less common parts of the flow, like the beginning and the end, which can easily be the most dangerous sections 267 | * We can’t do a security review just from Engagement Model, but we feel that it’s a requirement: the first step of a full review 268 | * Successful here: we spotlighted areas that they weren’t currently dealing with! 269 | * So BCC Goal: say why this process is important, and why we’re doing it 270 | * Unlike BCC Engagement Models: this is is real 271 | 1. * [ ] Review MD Files in Gordian Guardian 272 | 273 | ## Future Possibilities 274 | 275 | 3. Do We Want to Use "What We Could Do?" as a possibility showcase 276 | * If so, try to better highlight how each item could help individuals 277 | 5. Write Weekly Articles(?) 278 | 7. Chapter in LBTCftCL on BCC CLIs 279 | 8. Chapter in LBTCftCL on BCC libraries 280 | 9. Section in LBTCftCL on BC-UR 281 | 10. Is there more we can do on BC-UR? Intro? Other Stuff? 282 | 11. v2 of #SC 283 | 12. Should LBTCftCL Have an Exam? 284 | 285 | ## Recently Completed 286 | 287 | 14. * [X] Further integration of Gordian Seed Tool 288 | 1. * [X] Write Article or Tweets about Translations [2022] 289 | 1. * [X] Update Internship Info, matching dates of https://www.summerofbitcoin.org/how-it-works [Wednesday] 290 | 1. * [X] Make Sure UR Docs Talk About Creation 291 | 1. * [X] Document Coldcard & Passport Seed Backup Methodologies 292 | 1. * [X] Add URs to all test vectors 293 | 1. * [X] Write high-level vision of next-generation architecture 294 | 1. * [X] Finalize GST Manual Changes for 1.4 (52+) [NW1] 295 | 1. * [X] Update All GST Pics as Needed in Manual [NW2] 296 | 1. * [X] Do Final Edit of GST 1.4 Manual [NW3] 297 | 1. * [X] Write responses for different sorts of crypto-requests, per derivation 298 | 1. * [X] Thoroughly test file names of new GST 299 | 2. * [X] Update manual for GST 1.4 300 | 4. * [X] Write Printing Cover Sheet as Suggested in https://github.com/BlockchainCommons/Gordian/discussions/82#discussioncomment-2087325 301 | 1. * [X] Look at updated GST SSKR Cover Page, Should We Add Stuff (**TODAY**): Master Key Fingerprint, Ethereum Fingerprint, URL for seedtool? mention other places to recover (or just a page: GST, seedtool-cli) 302 | 1. * [X] Respond to SoB about Internships [Wednesday] 303 | 1. * [X] Tweetstorm Case Studies 304 | -------------------------------------------------------------------------------- /github-primer.md: -------------------------------------------------------------------------------- 1 | # GitHub Primer 2 | 3 | Blockchain Commons does much of its work through [GitHub](https://github.com/BlockchainCommons). Not only is it the site for all of our code repositories, but it's also used for documentation and discussions. 4 | 5 | ## Creating an Account 6 | 7 | In order to interact with GitHub, you _must_ have an account. You can create one through the "Sign Up" button on GitHub. 8 | 9 | https://github.com/signup 10 | 11 | Though you will have to provide an email, it need not be publicly visible, and you can choose a username that either corresponds with your real name or not, as you prefer. 12 | 13 | ## An Intro to Repos 14 | 15 | Blockchain Commons is an "organization" on GitHub. It contains many "repositories", or "repos". Generally, every individual code base has its own repo: so not only is there a repo for our [Spotbit Server](https://github.com/BlockchainCommons/spotbit) but there are also individual repos for [our lifehash library in C](https://github.com/BlockchainCommons/bc-lifehash) and [our lifehash library in python](https://github.com/BlockchainCommons/bc-lifehash-python), as an example. 16 | 17 | Repos are also sometimes used to organize related topics and to hold documents. Major repos at Blockchain Commons include: 18 | 19 | * [Gordian](https://github.com/BlockchainCommons/Gordian) — Our architecture, from principles to apps 20 | * [Research](https://github.com/BlockchainCommons/Research) — Our specifications 21 | * [Crypto Commons](https://github.com/BlockchainCommons/crypto-commons) — Our developer resources such as docs & libraries 22 | * [SmartCustody](https://github.com/BlockchainCommons/SmartCustody) — Our responsible key management course 23 | * [Learning Bitcoin from the Command Line](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line) — Our Bitcoin Core tutorial 24 | * [Community](https://github.com/BlockchainCommons/Community) — Administrative info on Blockchain Commons & its procedures 25 | 26 | ## Engaging in Community 27 | 28 | Our repos include community Discussions areas where you can talk about a wide variety of topics. 29 | 30 | There are two major Discussions areas at Blockchain Commons: 31 | 32 | * [Blockchain Commons](https://github.com/BlockchainCommons/Community/discussions) — Our main discussions area for Blockchain Commons administration 33 | * [Airgapped Wallet](https://github.com/BlockchainCommons/Airgapped-Wallet-Community/discussions) — Our discussion area for interacting with the larger ecosystem, focusing on specifications & advances 34 | 35 | ## Filing Issues 36 | 37 | If you encounter a problem with software or documentation in a repo, but you don't know how to fix it, please file an Issue. 38 | 39 | There will be an "Issues" item in the top bar of each repo; just select it and then click the "New Issue" button. 40 | 41 | Include a good Title and as much detail as you can, including specific info on how to replicate the problem (including the platform where the problem occurred and what error message it returned, if appropriate). Also please click on the gear next to the Labels area to help to classify the Issue. 42 | 43 | When you're done "Submit New Issue" and it'll go to the developers responsible for the repo. 44 | 45 | ## Forks, Branches, and Clones 46 | 47 | You can also make changes to repos. This allows you to directly correct documentation or code and to make additions to a repo. To do so you have to make your own copy of the repo and edit it. This is the most confusing element of GitHub, because there are a variety of different methods to make copies of repos. Most frequently you will _fork_ a repo and then _clone_ it to your home machine. 48 | 49 | But, here's an overview of all the options: 50 | 51 | * **Fork.** You can fork a repo by going to the repo in question and hitting the "Fork" button at the top of the page. This will make a copy of the repo into your own GitHub account. Afterward, you can edit it directly within your own account. 52 | * **Clone.** Usually you don't want to be working on a repo at github.com, but instead on your home machine. To do so, you make a clone of the repo on your home machine using GitHub software. To be precise, you should make a clone of the fork that you created. 53 | * **Branch.** GitHub also supports branches, which are variants of a repo, often used to hold in-progress work, such as new, untested code or documentation for a future version of software. You won't usually have to worry about creating branches, but you may be asked to use an existing branch to help segregate your work. In this case, when you create a Fork, you'll uncheck the box that says "Master only", and then when you work on the repo on your local machine, you'll have to change to using that branch. 54 | 55 | ## GitHub Software 56 | 57 | If you want to work on a GitHub repo at github.com you can do so using their web-based interface. 58 | 59 | However, you'll more often want to work on a repo on your home machine, because it'll allow you to more easily test code, because it's sometimes faster than working across the internet, and because there are some limitations to the web-based GitHub interface (e.g., you can't easily revert). To do so, you'll need GitHub software on your local machine. 60 | 61 | * [**GitHub Desktop**](https://desktop.github.com/) is the official GUI for GitHub. You can clone a repo you've forked, make changes with an editor of your choice, and then upload it back to your GitHub account 62 | * Once you've installed `Desktop`, you should see an "Add" button on the left which you can click to see an option to "Clone Repository". 63 | * **Git Command-Line Tools** are the other major option. See [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) for how to install them under a variety of operating systems. 64 | * Once you've installed Git Tools, you can clone a repo with a command such as: "git clone https://github.com/shannona/Community.git". The exact URL should be available under the green "Code" button on the webpage for your fork. 65 | 66 | ## Making Changes to a Repo 67 | 68 | The primary methodology for editing a repo on your local machine is, as noted, to _fork_ to your own account, then _clone_ to your local machine, then _edit_ using your favorite text editor. 69 | 70 | When you're done, the primarily methodology for submitting those changes to the master repo is to _commit_ the changes you've made on your local machine, _push_ them from your local machine to your repo on github.com, and then _pull request_ to ask that your fork be merged into the main branch of the original repo. 71 | 72 | The first two steps are both done using the tools you donwloaded to your local machine. 73 | 74 | In `Desktop`, you should be able to write a summary (and optionally description) of your changes, "Commit to Master" and then "Push". 75 | 76 | Using Git Tools, you will either, commit an individual file: 77 | ``` 78 | $ git add [file] 79 | ``` 80 | Or commit all changes on your local machine: 81 | ``` 82 | $ git commit -a 83 | ``` 84 | For example: 85 | ``` 86 | $ git commit -a 87 | [master f7d2f20] addition to README, mainly as test. 88 | 1 file changed, 4 insertions(+) 89 | ``` 90 | Afterward, you `git push` your changes. For example: 91 | ``` 92 | $ git push 93 | Enumerating objects: 5, done. 94 | Counting objects: 100% (5/5), done. 95 | Delta compression using up to 4 threads 96 | Compressing objects: 100% (3/3), done. 97 | Writing objects: 100% (3/3), 1.04 KiB | 1.04 MiB/s, done. 98 | Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 99 | remote: Resolving deltas: 100% (2/2), completed with 2 local objects. 100 | To https://github.com/shannona/Community.git 101 | 30c025a..f7d2f20 master -> master 102 | ``` 103 | At that point, your changes will be uploaded to your fork on github.com, but not to the main repo. To merge them in you need to create a "pull request" (PR), which is basically a request to the owner of the original repo that your changes be incorporated. 104 | 105 | You can make this request by going to your fork on the repo on github.com, clicking on the "Pull requests" item in the top bar, and then selecting "New pull request". 106 | 107 | At that point, you should see a "diff", showing your changes. If they all look proper to you, click "Create pull request". Make any changes to the summary to ensure that you have a clear overview of your changes, write additional descriptions as comments, and then click "Create pull request" (one more time). 108 | 109 | You will then see a PR created on the original repo, which will incorporate your changes if the owner of the repo merges it. 110 | 111 | (Whew.) 112 | 113 | ## Avoiding Merge Conflicts 114 | 115 | A merge conflict means that some changes you made conflict (or seem to conflict) with some other changes made between when you started your edit (usually when you did a fork or clone) and when you ended your edit (usually when you submit your pull, though alternatively when someone looks at your PR if it's been sitting around for a while). (We say "seem to" because the GitHub merging isn't always as robust as we'd like and sometimes there are actually no changes to the section that you also changed but GitHub is just confused due to to other changes in the document.) 116 | 117 | The only way to really avoid merge conflicts is to be quick: to make sure that your fork/clone is 100% up-to-date when you start making changes, and then to submit your PR as soon as possible. On the web, you can keep up-to-date by going to the main page of your fork and seeing if it's some number of "commits behind" and if so choosing to "Sync Fork"; on a local clone, you can similarly do so by "git pull"ing down changes before you make updates. Once you start making changes on your side, things get more complex, so do the update first! 118 | 119 | ## Resolving Merge Conflicts 120 | 121 | When you don'd avoid a merge conflict (and obviously that's not always possible: sometimes you're working on things for a while and sometimes someone else is working exactly when you are), then the dreaded resolve-conflicts box shows up: 122 | 123 | Screenshot 2023-02-14 at 7 43 56 AM 124 | 125 | This typically means that your fork/clone was some number of commits behind when you started making your own changes _and_ GitHub can't figure out how to integrate those two sets of changes (though often it'll be able to): 126 | 127 | ``` 128 | This branch is 4 commits ahead, 3 commits behind BlockchainCommons:master. 129 | ``` 130 | When you click on the "Resolve Conflicts" button, you see all the conflicted areas. 131 | 132 | For example: 133 | ``` 134 | <<<<<<< update-dates 135 | * **[European Blockchain Convention](https://eblockchainconvention.com)** 2023/02/15 - 2023/02/17 Barcelona 136 | * **Real World Crypto 2023** 2023/03/27 - 2023/03/29 Tokyo, Japan 137 | * **Bitcoin Miami** 2023/05/18 - 2023/05/20 Miami Beach 138 | * **[Dweb Camp](https://dwebcamp.org)** 2023/06/21 - 2023/06/25 Camp Navarro CA 139 | * **[OAuth Security Workshop](https://oauth.secworkshop.events)** 2023/08/22 - 2023/08/24 Royal Holloway University, London/UK 140 | * **[IIW](https://internetidentityworkshop.com)** XXXVII Fall: 2023/10/10 - 2023/10/12 141 | * **[Identity Week Asia](https://www.terrapinn.com/exhibition/identity-week-asia/index.stm)** 2023/11/07 - 2023/11/08 Suntec Convention Centre, Singapore 142 | ======= 143 | * **European Blockchain Convention** 144 | * 2023/02/15 - 2023/02/17 | Barcelona 145 | * **Real World Crypto 2023** 2023/03/27 - 2023/03/29 | Tokyo, Japan 146 | * **Bitcoin Miami** 2023/05/18 - 2023/05/20 | Miami Beach 147 | * **Dweb Camp** 148 | * 2023/06/21 - 2023/06/25 | Camp Navarro CA 149 | * **OAuth Security Workshop** 150 | * 2023/08/22 - 2023/08/24 | Royal Holloway University, London/UK 151 | * **IIW** XXXVII Fall: 2023/10/10 - 2023/10/12 152 | * **Identity Week Asia** 153 | * 2023/11/07 - 2023/11/08 | Suntec Convention Centre, Singapore 154 | >>>>>>> master 155 | ``` 156 | 157 | In each case, it shows your update between `<<<<<<< your-branch-name` and `=======` and the current state of the repo between `=======` and `>>>>>>> master`. So what you need to do is integrate the two conflicted states into a coherent whole and remove the `<<<<<<< your-branch-name`, `=======`, and `>>>>>>> master` lines. 158 | 159 | Often it's really easy, and you just need to excise the old version and include your new version (or vice versa), because GitHub claimed there was a conflict when there wasn't. 160 | 161 | The above example was a _real_ conflict. The new update had a URL for IIW, while the new master had a better organization. So a resolution might look something like the following: note the "IIW" line in particular, which takes elements from both branches: 162 | 163 | ``` 164 | * **European Blockchain Convention** 165 | * 2023/02/15 - 2023/02/17 | Barcelona 166 | * **Real World Crypto 2023** 2023/03/27 - 2023/03/29 | Tokyo, Japan 167 | * **Bitcoin Miami** 2023/05/18 - 2023/05/20 | Miami Beach 168 | * **Dweb Camp** 169 | * 2023/06/21 - 2023/06/25 | Camp Navarro CA 170 | * **OAuth Security Workshop** 171 | * 2023/08/22 - 2023/08/24 | Royal Holloway University, London/UK 172 | * **IIW** XXXVII Fall 173 | * 2023/10/10 - 2023/10/12 174 | * **Identity Week Asia** 175 | * 2023/11/07 - 2023/11/08 | Suntec Convention Centre, Singapore 176 | ``` 177 | -------------------------------------------------------------------------------- /apprenticeship-skills.md: -------------------------------------------------------------------------------- 1 | # Apprenticeship 2 | 3 | [![hackmd-github-sync-badge](https://hackmd.io/LD_bs94ESrOMvLjr7ofs4w/badge)](https://hackmd.io/LD_bs94ESrOMvLjr7ofs4w) 4 | 5 | 6 | These are an unorganized and incomplete set of what I believe that an Blockchain Commons Apprentice needs to have some competency in order to move toward becoming a Journeyman. 7 | 8 | -- Christopher Allen \ 9 | 10 | ## Concepts 11 | 12 | ### Mentorship, Advising, Internship, Apprenticeship, Reciprocal Apprenticeship, Journeyman, Master & Mastery 13 | 14 | ##### Mentorship 15 | 16 | ##### Advising 17 | 18 | ##### Internship 19 | 20 | ##### Apprenticeship 21 | 22 | ##### Reciprocal Apprenticeship 23 | 24 | http://starwars.wikia.com/wiki/Reciprocal_apprenticeship 25 | 26 | ##### Journeyman 27 | 28 | ##### Master & Mastery 29 | 30 | ### Top-Down Architectures 31 | 32 | #### Limitations of top-down 33 | 34 | - https://publib.boulder.ibm.com/tividd/td/ITIM/SC32-1708-00/en_US/HTML/im460_plan76.htm 35 | 36 | #### First Principles, Principles, Axiom, Patterns, Models, Processes, Tools 37 | 38 | ##### First Principles 39 | 40 | ###### Definition 41 | 42 | - A **first principle** is a basic, foundational, self-evident proposition or assumption that cannot be deduced from any other proposition or assumption. 43 | - https://fs.blog/2018/04/first-principles/ 44 | 45 | ##### Principles 46 | 47 | ###### Definition 48 | 49 | - **A principle** is a fundamental assumption while **axiom** is a seemingly which cannot actually be proved or disproved. 50 | 51 | ##### Axioms 52 | 53 | ###### Definition 54 | 55 | - An **axiom** is a complete, formal statement (ideally one which can be true in some "interesting" models and false in others). A **principle** is a much more general thing, and in fact sometimes "principle" is used to refer to informal heuristics rather than formal properties. 56 | 57 | ###### MG Taylor Axioms 58 | 59 | - TBW: 60 | 61 | ##### Patterns 62 | 63 | ###### Definition 64 | 65 | - A **pattern** is an observation that something is in common that an observer may discern when looking a number of different events. 66 | 67 | ##### Pattern Languages 68 | 69 | ###### General 70 | 71 | - A ['pattern language'](https://en.wikipedia.org/wiki/Pattern_language) is a collected way of describing patterns that fall within the design field of complex problems. 72 | - 73 | ###### GroupWorks Pattern Language 74 | 75 | - A pattern language for designing meaningful and engaging meetings and gatherings- [great in-depth PDF here](https://www.dropbox.com/s/ek9jjm1e9do3ffs/Introduction%20to%20Group%20Works.pdf?dl=0) 76 | 77 | ###### Wise Democracy Pattern Language 78 | 79 | - The [Wise Democracy Pattern Language](https://www.wd-pl.com/) focuses on modeling resources for collaborative self-governance in the 21st century. 80 | 81 | ###### Pattern Language of Cooperative Play 82 | 83 | - Book Shannon Appelcline are drafting 84 | 85 | ###### Design with Intent 86 | 87 | - The [Design With Intent](http://danlockton.com/design-with-intent/) toolkit focuses on influencing socially and environmentally beneficial behavior through design. 88 | 89 | ##### Models 90 | 91 | ###### Definition 92 | 93 | - TBW 94 | 95 | ###### Limitations of Models 96 | 97 | - TBW 98 | 99 | ###### MG Taylor Models 100 | 101 | - TBW 102 | 103 | ##### Processes 104 | 105 | ###### Definition 106 | 107 | - A **process** is a series of actions that are taken to accomplish a particular end. 108 | 109 | ##### Tools 110 | 111 | Definition 112 | 113 | - TBW 114 | 115 | ###### Limitations of Tools 116 | 117 | - TBW 118 | 119 | ### Skill Trees & Pedagogy 120 | 121 | ### Self-Sovereign Identity & Human Rights 122 | 123 | ### The Commons & Participatory Ecosystems 124 | 125 | ### Software Business & Intellectual Property 126 | 127 | ### Open Source Culture 128 | 129 | - ["Open Source is a decentralized software development model that encourages open collaboration."](https://en.wikipedia.org/wiki/Open-source_model) 130 | 131 | ### Cooperation & Collaboration 132 | 133 | ### Decision Making, Rationality, Cognitive Bias 134 | 135 | ### Social Change 136 | 137 | ### Bitcoin-Related Esoterica 138 | 139 | ##### Economics 140 | 141 | ##### Game Theory 142 | 143 | ##### Incentive Mechanism Design 144 | 145 | ##### Game Design 146 | 147 | 148 | 149 | ## Skills 150 | 151 | ### Soft Skills (non-technical, management, etc.) 152 | 153 | #### Pedagogy/Androgogy 154 | 155 | ##### Skill Trees/Hierarchy 156 | 157 | ##### Proficiency Ladder / Flow 158 | 159 | - [Slide deck on the proficiency ladder model for designing instructional objectives](https://www.slideshare.net/ChristopherA/the-proficiency-ladder) 160 | 161 | ### Management 162 | 163 | - Vantage Point Model for Objectives 164 | 165 | ### Collaboration & Facilitation 166 | 167 | ##### Facilitation Patterns 168 | 169 | ###### Using GroupWorks Pattern Language 170 | 171 | - [Group Works Patterns deck](https://groupworksdeck.org/) 172 | - [Article on the power of pattern languages](https://www.resilience.org/stories/2015-05-29/the-power-of-pattern-languages/) 173 | - A pattern language for designing meaningful and engaging meetings and gatherings- [great in-depth PDF here](https://www.dropbox.com/s/ek9jjm1e9do3ffs/Introduction%20to%20Group%20Works.pdf?dl=0) 174 | 175 | ### Technical Skills (in particular computer, but not exclusively) 176 | 177 | #### Mac 178 | 179 | ##### Basic Tools 180 | 181 | ##### Command Line (in particular on Mac) 182 | 183 | - [Intro to the Mac Command Line](https://github.com/ChristopherA/intro-mac-command-line) 184 | 185 | ##### Dotfiles 186 | 187 | - Basics - [Prepare MacOS for CLI Development (need to update)](https://github.com/ChristopherA/prepare-osx-for-webdev) 188 | - [Christopher's more advanced approach](https://github.com/ChristopherA/.dotfiles) 189 | 190 | #### Markdown 191 | 192 | - Basic Markdown & History 193 | - [Intro to Markdown Guide](https://www.markdownguide.org/) 194 | - [Markdown's History](http://aaronbeveridge.com/markdown/history.html#a-brief-history-of-markdown) 195 | 196 | - Github-Flavored Markdown 197 | - [Github's Markdown Guide](https://guides.github.com/features/mastering-markdown/) 198 | 199 | - Github Pages Markup 200 | 201 | - Markua Book 202 | - [Markua Technical Spec](http://markua.com/) 203 | 204 | #### Git & GitHub 205 | 206 | ##### Basics 207 | 208 | * .gitignore & gitignore.io 209 | 210 | ##### GitHub using Web Interface 211 | 212 | ##### GitHub using GitHub App, Atom & Typora 213 | 214 | ##### Command-line GitHub 215 | 216 | ##### GitHub Security - SSH & PGP 217 | 218 | ##### GitHub Pages 219 | 220 | - Jekyll-Less 221 | - Remote-Themes 222 | - Leveraging Local Jekyll for Static Pages 223 | - Hugo Static 224 | - https://gohugo.io/ 225 | 226 | #### Domain Management 227 | 228 | ##### DNS & Privacy 229 | 230 | ##### DNS Client Services 231 | 232 | ##### DNS Server Services 233 | 234 | ##### DNS & Github 235 | 236 | #### Virtual Private Servers 237 | 238 | ##### Linode & Debian 239 | 240 | - See https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line/blob/master/02_0_Setting_Up_a_Bitcoin-Core_VPS.md & automated https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line/blob/master/02_0_Setting_Up_a_Bitcoin-Core_VPS.md 241 | 242 | ### OpSec 243 | 244 | #### Authentication / Authorization 245 | 246 | ##### Master Password 247 | 248 | - [Password Basics](http://www.lifewithalacrity.com/previous/2009/09/password-best-practices.html) 249 | 250 | ##### Password Management 251 | 252 | ##### Key Management 253 | 254 | - 2FA 255 | - MFA/FIDO2 256 | - SSH 257 | - PGP 258 | - BIP39 259 | 260 | ##### VPN 261 | 262 | ###### Mullvad 263 | 264 | - [Mullvad VPN](https://mullvad.net/en/) 265 | 266 | ###### Personal VPN on VPS 267 | 268 | - TBW: 269 | 270 | ### Bitcoin 271 | 272 | #### Bitcoin Basics 273 | 274 | #### Bitcoin Basic Development 275 | 276 | ##### Bitcoin-Core 277 | 278 | ###### Developing with Bitcoin Core 279 | 280 | - [Learning Bitcoin from the Command Line open course](https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line) 281 | 282 | ###### Lightning 283 | 284 | - [LND](https://medium.com/lightning-power-users/windows-macos-lightning-network-284bd5034340) 285 | - [C-Lightning](http://librecryp.to/using-lightning-on-macos) 286 | 287 | #### SmartCustody 288 | 289 | ##### First Workshop 290 | 291 | - [Smart Custody: Simple Cold Storage Self Custody Workshop](https://www.eventbrite.com/e/smartcustody-simple-cold-storage-self-custody-workshop-tickets-54426618481) 292 | 293 | #### Anonymity 294 | 295 | ##### Burner Laptop 296 | 297 | - Choosing 298 | - I in particular like the MacBook Air 11" ( Mid 2011, A1370, MD214LL/A, Mac 3,1) max 4GB RAM, SSD is upgradeable to 1TB, wifi can be removed for Air Gap machines, has Thunderbolt 1 (though otherwise only two USB 2.0 ports), it will run High Sierra (not Mojave), Tails OS, any Debian-derived OS (if you add Broadcom drivers to installer or remove wifi chip during install), Whonix in VirtualBox in High Sierra, and is even qualified for full Qubes support (but like Debian you have to remove Broadcom WiFi during install). Small, cheap and powerful enough. Get one on [eBay](https://www.ebay.com/sch/i.html?_nkw=Macbook+Air+A1370) with 4GB RAM as that can't be upgraded, but don't pay a lot for 256GB SSD (the largest Apple offered) as you can upgrade that with OWL. Many used units will have poor battery quality, so watch for that or be prepared to purchase a battery replacement. 299 | 300 | ##### Before you Start 301 | 302 | ##### Basic Tails OS 303 | 304 | - Booting basic Tails OS from USB drive 305 | - Using basic Tails OS 306 | - Using Tor Browser 307 | - Other Tails OS Apps 308 | - Bitcoin on Tails - Electrum 309 | - Create new Tails drives 310 | 311 | ##### Advanced Tails OS 312 | 313 | - Persistent Volumes 314 | - Opening Persistent Volumes on Mac 315 | - Customizing Tails 316 | - [Bash Dotfiles for Tails](https://github.com/ChristopherA/bash-dotfiles-for-tails) 317 | 318 | ##### Other Anonymous OS 319 | 320 | - [Whonix](https://www.whonix.org/) 321 | - Uses host operating system and two VirtualBox VMs 322 | - [Qubes](https://www.qubes-os.org/) 323 | - Hardware level privacy, but limited drivers 324 | 325 | ##### Anonymity Best Practices 326 | 327 | - 328 | 329 | 330 | ## Projects 331 | 332 | #### Tutorials 333 | 334 | - Tutorial for non-programmers on how to do GitHub using web interface & using apps like Atom & GitHub App 335 | - Tutorial: Mac Users on Command 336 | - Tutorial for engineers on better use of GitHub from Command-Line Interface 337 | - Tutorial: Using GitHub Pages for Blogs & Websites 338 | - Tutorial: Basic Opsec 339 | - Update old Life With Alacrity [Password Best Practices](http://www.lifewithalacrity.com/previous/2009/09/password-best-practices.html) 340 | - FIDO2 Keys 341 | - GPG Key Gen & Subkeys 342 | - Cryptographic Keys 343 | 344 | #### SocioSocratic Learning Seminars 345 | 346 | - Christopher Has domain SociosocraticLearning.com "Adding the Social Web to the ancient art of Socratic Learning" 347 | 348 | - Github (empty) https://github.com/ChristopherA/SocioSocracticLearning for web page 349 | 350 | - Pedagogy using Zoom https://www.slideshare.net/ChristopherA/my-hybrid-flipped-learning-environment 351 | 352 | - Unpublished call-for-students circa 2014 when I left BGI: 353 | 354 | - I have taught technology leadership in a progressive MBA in Sustainable Systems program (Pinchot.edu), yet even given their innovative curriculum, there are number of masters level topics that I would like to teach that are too new or advanced to offer through formal academia. Many of these topics are related to sources of disruption that are driving business change today (Occupy, self-management, blockchains, millenials, breaking out of the "growth" style of entrepreneurship, participatory management, etc.). 355 | 356 | I'm considering offering a sociosocratic style classes online on these management topics, at mastery level, in my Zoom conference room. (Sociosocratic is the ancient Socratic method except that the smart questions & answers come from both students and teacher/facilitator as co-creators.) 357 | 358 | I'm thinking Tuesday's at 5pm PT, probably starting in late fall. Likely it very inexpensive at first ($75 per 3 classes in a single series, more just to hold space and people to firm up their commitments.) 359 | 360 | These are some of the topics that I think the students that are wish to break out of the current approaches to business would find useful. Each of these topics are not complete enough to be a course in and of themselves, but collectively someday could be integrated into one. 361 | 362 | * Stability, Growth, Hypergrowth — the nature of growth, stable businesses, 'big enough", the classic growth economic model, and hyper growth of a 13-person billion dollar business in less then a year (Instagram to Facebook), and breaking out of the growth model. 363 | 364 | * The nature of different entrepreneurial cultures, including family businesses, partnerships, professional partnerships, dividend corps, growth corps, as well as some non-US models like Japan's Keiretsu, Spain's Mondragon, and Italy's Emilia Romagna. 365 | 366 | * Emerging trends in capitalization, including new kinds of debt financing, Kickstarter, angel investing, benefit investing, small business financing, worker cooperatives, and nature of control vs ownership (i.e. zuckerberg style of leveraged control vs. even equally distributed ownership). 367 | 368 | * Alternatives to exits — ESOP, dividends, interest, residuals/royalties, revenue streams 369 | 370 | * Emerging trends in management — lean startups, distributed startups, etc. 371 | 372 | * How to be a founder — founder's dilemma hands-off management, do founders hiring management/operations rather then be management, etc. 373 | 374 | * Stakeholder management — different approaches to ownership and control by employees, sweat-equity, small-business intrapreneurial models, transition / retirement / departure of founders, board members, and key employees, etc. 375 | 376 | * Alternative economic systems — open source, gift economies, sharing economies, participatory ecosystems, etc. 377 | 378 | * Professional consulting & Solopreneurship — the wide variety of small companies with big impact providing design and other services, and not just to large corps. 379 | 380 | * Global entrepreneuring — partnering with entrepreneurs in other countries and cultures. 381 | 382 | * Co-opetition — working with your competitors, growing a market, creating common standards, sharing non-competive advantage functionality (i.e. open source and IBM0, negotiating win-win scenarios. 383 | 384 | * Serial & Parallel entrepreneurship — issues of managing multiple businesses (either in serial or in parallel), surviving the sale of the company, exit strategies, "non-exit" exit strategies. 385 | 386 | * Failure — freedom to fail, "don't let your dogs become your pets", when to cut the cord, when to double-down, failing gracefully, risk management, hibernation, bankruptcy is not the end of the world, learning from failure, postmortems, keeping positive relationships with fired employees. 387 | 388 | * Unique team challenges — early departure of team members, team members with inter-personal relationships, team selection types, virtual/distributed/remote/multi-cultural teams, outsourcing. 389 | 390 | * Mentorship — nature of mentors, coaches, sponsors, advisors, board members, working in industry before building a company, corporate sponsorship (extra-preneurship) 391 | 392 | * Right Livelihood — work-life balance, working from home, co-working, 80% plans (one of: 1 day off a week, leave early or arrive late daily, 1 month sabbatical each year beyond vacation), employee policies and benefits, employee retention, day jobs, incorporating family, women as entrepreneurs and employees, etc. 393 | 394 | * Stories – entrepreneurs, angels, vc's, telling stories of experience with the above. 395 | 396 | With some thinking I would add quite a few more topics, for instance what is going on with blockchain and cryptographic ledgers, decentralized autonomous organization, smart contracts, censorship- & power-resistant systems, incentives, neurology of decision making, austrian economics, etc. 397 | 398 | For an example of a more intensive 12 week hybrid (both F2F & online) course I ran in 2012, [here is my syllabus for Using the Social Web for Social Change](http://www.lifewithalacrity.com/2012/10/using-the-social-web-for-social-change-syllabus-sw4sx.html) 399 | 400 | [Here is an example of the first two weeks of that more intensive course.](http://www.lifewithalacrity.com/2012/10/introduction-to-the-social-web-reading-list-sw4sx.html) 401 | 402 | Some of these digital influence topics from this class are additional possible topics students could select from. 403 | 404 | I think the format for class would be pick a topic & three Tuesday's that work for about 7 students. Week 1 would start with Scan — I would provide a list of read ahead articles & videos, and discussion asynchronous and in online chat room would be about them. Week 2 would be Focus — picking a sub-topic to dive deeper into, with some assignments for all to do some research. Week 3 would be Synthesis — collaboratively write up best synthesis and links about topic, with the audience being the next time class might be run on same topic or for use by professional practitioners. Commitment: 4-1/2 hours in synchronous class (1-1/2 per meeting), about 3 hours of reading and research and 2 hours writing. 405 | 406 | [See the recommendations from my students in my LinkedIn profile about my classes.](https://www.linkedin.com/in/christophera#experience-88412676) 407 | 408 | Send me email at [mailto:ChristopherA@LifeWithAlacrity.com](ChristopherA@LifeWithAlacrity.com) if you are interested. 409 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Blockchain Commons Community 2 | 3 | ![](images/logos/bcc-community-screen.jpg) 4 | 5 | The Blockchain Commons Community is a central location for discussion and information dispersal for Blockchain Commons stakeholders. 6 | 7 | ## Objectives 8 | 9 | 1. **Blockchain Commons:** Create a specific commons that is dedicated to the realization of open infrastructure for secure, compassionate, decentralized systems. 10 | 1. **Open Infrastructure:** Define and advocate a specific and actionable notion of “open infrastructure” as a self-organizing approach to collaborative resource generation. 11 | 1. **Architecture:** Research, define, and evangelize an interoperable architecture for secure decentralized systems that are resilient, pragmatic, and easy to use. 12 | 1. **Demand:** Define and advocate a new techno-social contract of decentralized infrastructure, based on human dignity, respect for the individual, and mutual benefit for all contributors. 13 | 1. **Peers:** Increase the demand for, and population of, people who understand the effective development, and use of, secure decentralized systems. 14 | 15 | See also [our current strategies](Strategies.md) and our [vision page](https://www.blockchaincommons.com/vision.html). 16 | 17 | ## Websites 18 | 19 | * [Main Website](https://www.blockchaincommons.com) 20 | * [Advocacy Website](https://advocacy.blockchaincommons.com) 21 | * [GitHub Repos](https://github.com/BlockchainCommons/) 22 | * [BTCPay](https://btcpay.blockchaincommons.com/) 23 | 24 | ## More Information 25 | 26 | **Announcements:** 27 | 28 | * [Tweetstorms](Tweetstorms.md) — incomplete list of past tweetstorms 29 | * [Best Practices](Tweetstorms-Best-Practices.md) — how to write BCC tweets 30 | 31 | **Blockchain Commons Info:** 32 | 33 | * [Account Listing](bc-accounts.md) — Listing of accounts with info about Blockchain Commons 34 | 35 | **GitHub Usage:** 36 | 37 | * [GitHub Primer](github-primer.md) — An overview of using GitHub 38 | 39 | **Repos & Repo Releases:** 40 | 41 | * [Repo Creation Conventions](repo-conventions.md) - how to create a new repo 42 | * [Release Best Practices](release.md) — How to release 43 | * [Release Path](release-path.md) — what alpha, beta, etc mean 44 | * [Release Path Best Practices Standards](release-path-standards.md) — what to do at various stages 45 | 46 | **Web Page Releases:** 47 | 48 | * [Info Web Page Conventions](web-info-conventions.md) — Standard content for our proof-of-concept info web pages 49 | 50 | **App Releases:** 51 | 52 | * [Release: Creating an Ad-Hoc DMG for the Mac](release-dmg.md) — How to do so 53 | * [Versioning Notes for Apple & Android](https://github.com/BlockchainCommons/Community/issues/35) — Issues discussion of version #s 54 | 55 | **Events:** 56 | 57 | * [Blockchain, Digital Identity & Related Events Listing](Conferences.md) —  A listing of related events & groups 58 | * [Blockchain Calendar](Calendar.md) — Anniversary dates to celebrate Bitcoin 59 | 60 | **Administrative Utilities:** 61 | 62 | * [Codeowners Reports](script-codeowners.md) — A listing for repo metadata 63 | 64 | ## Virtual Internships 65 | 66 | We have run [well-received](https://www.coindesk.com/blockchain-commons-interns-open-source-developers) virtual internship programs in both Summer 2020 and Summer 2021. Discussion of our most recent internship program can be found [here](https://github.com/BlockchainCommons/Community/discussions/32), while a lot of our intern work occurs in our [Community Discussion](https://github.com/BlockchainCommons/Community/discussions). 67 | 68 | If you're interested in a future internship program, watch that space for our next announcement. 69 | 70 | ## Server List 71 | 72 | The following servers are currently running Blockchain Commons services. If you need access, please ask. 73 | 74 | * BTCPay: 45.56.94.154 75 | * Our secure server, currently used for BTCPay 76 | * Spotbit: 45.56.94.96 77 | * Our services server, currently used for Spotbit (http://h6zwwkcivy2hjys6xpinlnz2f74dsmvltzsd4xb42vinhlcaoe7fdeqd.onion) 78 | * Wallet: 45.56.94.106 79 | * ?. This may be our default full node for Gordian Wallet 80 | * Research-0: 45.56.94.175 81 | * Our main server for research projects 82 | * Esplora: 45.56.94.83 83 | * Server for Esplora implementation 84 | * electrs and http available over tor: 85 | * http://pf4awrbzt3ohrtukpq6xx6y73gxqlnon4zh35ik7ald3kwfb5iedogad.onion/ 86 | * pf4awrbzt3ohrtukpq6xx6y73gxqlnon4zh35ik7ald3kwfb5iedogad.onion:50001 87 | 88 | ## Projects 89 | 90 | See [Projects](https://www.blockchaincommons.com/projects.html) for our most comprehensive list. 91 | 92 | * Recent Projects: 93 | * [The Gordian system](https://github.com/BlockchainCommons/Gordian) 94 | * [GordianSeedTool-iOS](https://github.com/BlockchainCommons/GordianSeedTool-iOS) 95 | * [GordianQRTool-iOS](https://github.com/BlockchainCommons/GordianQRTool-iOS) 96 | * [GordianServer-MacOS](https://github.com/BlockchainCommons/GordianServer-macOS) 97 | * [LifeHash](https://github.com/BlockchainCommons/lifehash.info) 98 | * [Learning Bitcoin from the Command Line](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line) 99 | * [#SmartCustody](https://github.com/BlockchainCommons/SmartCustody) 100 | * [Pseudonymity Guide](https://github.com/BlockchainCommons/Pseudonymity-Guide) 101 | * Projects under consideration: 102 | * Learning Bitcoin 3.0 103 | * #SmartCustody 2.0 104 | * Gordian Recovery 105 | * P & Q Bulletproofs Reference Implementation 106 | * Sidechain Security & Architecture Review 107 | 108 | If you are interested in supporting a specific blockchain FOSS (free and open-source software) project, feature, or bug bounty, or wish to support the Blockchain Commons or open infrastructure in general, please [become an ongoing sponsor](https://github.com/sponsors/BlockchainCommons) or if you prefer [make a donation to our BTCPay](https://btcpay.blockchaincommons.com/). We are investigating non-profit options (such as working with the Human Rights Founding) but we are not a charitable non-profit at this time, so any contributions are not individually tax-deductible; however, any contributions by businesses are tax-deductible as an expense. See https://github.com/sponsors/BlockchainCommons for details. 109 | 110 | ## Members 111 | 112 | The Blockchain Commons members are: 113 | 114 | * [Christopher Allen](mailto:ChristopherA@LifeWithAlacrity.com): 115 | * Blockchain & Decentralized Identity Architect — Internet Cryptography Pioneer —  Co-author TLS Security Standard 116 | * Decentralized Identity Advocate — founder of [#RebootingWebOfTrust](http://www.WebOfTrust.info) & co-chair of the [W3C Credentials Community](https://w3c-ccg.github.io) 117 | * Former Principal Architect — Blockstream Corporation, Former VP — Blackphone, Former CTO — Certicom 118 | * Technology Leadership — former Faculty in the MBA in Sustainable Systems program at [Pinchot.edu](http://bgi.pinchot.edu) 119 | * Blogs at [Life With Alacrity](http://www.LifeWithAlacrity.com), code on [Github](https://github.com/ChristopherA) and on Twitter is [@ChristopherA](https://twitter.com/ChristopherA) 120 | * Resides in the Bay Area of California, USA 121 | 122 | * [Mark Friedenbach](mailto:mark@friedenbach.org) 123 | * Software Engineer & Independent Bitcoin Protocol Developer 124 | * Specialties include blockchain scalability, privacy enhancing technologies & issued asset extensions to Bitcoin 125 | * Co-Founder & Former Infrastructure Tech Engineer — Blockstream Corporation 126 | * Co-author Pegged Sidechains [white paper](https://blockstream.com/sidechains.pdf), Confidential Assets [white paper](https://blockstream.com/bitcoin17-final41.pdf), Strong Federations [white paper](https://arxiv.org/abs/1612.05491) 127 | * Core developer of demurrage-token based [Freicoin](http://freico.in/) 128 | * Code on [Github](https://github.com/maaku) and on Twitter is [@MarkFriedenbach](https://twitter.com/markfriedenbach) 129 | * Resides in the Bay Area of California, USA 130 | 131 | * [Vinay Vasanji](mailto:me@vinayvasanji.com) 132 | * Convener of the Internet of Humans Workshop, with Paula Berman (Democracy Earth) and Kevin Owoki (Gitcoin) 133 | * Independent researcher—[SANDPP](https://bit.ly/3i5OXVt) 134 | * Collaborator at Blockchain Commons 135 | * Code on [Github](https://github.com/vinayvasanji) and on Twitter is [@VinayVasanji](https://twitter.com/vinayvasanji) 136 | * Resides in the Philadelphia, USA 137 | 138 | ## Communications 139 | 140 | The Blockchain Commons maintains the following communication channels: 141 | 142 | - Shared Document Repositories (github): https://github.com/BlockchainCommons 143 | - Community Documents (github): https://github.com/BlockchainCommons/Community 144 | - Research Papers (github): https://github.com/BlockchainCommons/Research 145 | - Twitter: https://twitter.com/BlockchainCmns 146 | - Forum/Mailing List: TBD 147 | 148 | More will be added as needed. 149 | 150 | ### Discussions 151 | 152 | The best place to talk about Blockchain Commons and its projects is in our GitHub Discussions areas. 153 | 154 | [**Gordian Developer Community**](https://github.com/BlockchainCommons/Gordian-Developer-Community/discussions). For standards and open-source developers who want to talk about interoperable wallet specifications, please use the Discussions area of the [Gordian Developer Community repo](https://github.com/BlockchainCommons/Gordian-Developer-Community/discussions). This is where you talk about Gordian specifications such as [Gordian Envelope](https://github.com/BlockchainCommons/Gordian/tree/master/Envelope#articles), [bc-shamir](https://github.com/BlockchainCommons/bc-shamir), [Sharded Secret Key Reconstruction](https://github.com/BlockchainCommons/bc-sskr), and [bc-ur](https://github.com/BlockchainCommons/bc-ur) as well as the larger [Gordian Architecture](https://github.com/BlockchainCommons/Gordian/blob/master/Docs/Overview-Architecture.md), its [Principles](https://github.com/BlockchainCommons/Gordian#gordian-principles) of independence, privacy, resilience, and openness, and its macro-architectural ideas such as functional partition (including airgapping, the original name of this community). 155 | 156 | [**Gordian User Community**](https://github.com/BlockchainCommons/Gordian/discussions). For users of the Gordian reference apps, including [Gordian Coordinator](https://github.com/BlockchainCommons/iOS-GordianCoordinator), [Gordian Seed Tool](https://github.com/BlockchainCommons/GordianSeedTool-iOS), [Gordian Server](https://github.com/BlockchainCommons/GordianServer-macOS), [Gordian Wallet](https://github.com/BlockchainCommons/GordianWallet-iOS), and [SpotBit](https://github.com/BlockchainCommons/spotbit) as well as our whole series of [CLI apps](https://github.com/BlockchainCommons/Gordian/blob/master/Docs/Overview-Apps.md#cli-apps). This is a place to talk about bug reports and feature requests as well as to explore how our reference apps embody the [Gordian Principles](https://github.com/BlockchainCommons/Gordian#gordian-principles). 157 | 158 | [**Blockchain Commons Discussions**](https://github.com/BlockchainCommons/Community/discussions). For developers, interns, and patrons of Blockchain Commons, please use the discussions area of the [Community repo](https://github.com/BlockchainCommons/Community) to talk about general Blockchain Commons issues, the intern program, or topics other than those covered by the [Gordian Developer Community](https://github.com/BlockchainCommons/Gordian-Developer-Community/discussions) or the 159 | [Gordian User Community](https://github.com/BlockchainCommons/Gordian/discussions). 160 | 161 | ### Other Questions & Problems 162 | 163 | As an open-source, open-development community, Blockchain Commons does not have the resources to provide direct support of our projects. Please consider the discussions area as a locale where you might get answers to questions. Alternatively, please use this repository's [issues](./issues) feature. Unfortunately, we can not make any promises on response time. 164 | 165 | If your company requires support to use our projects, please feel free to contact us directly about options. We may be able to offer you a contract for support from one of our contributors, or we might be able to point you to another entity who can offer the contractual support that you need. 166 | 167 | ## Community RoadMap 168 | 169 | - [x] Create Github Community 170 | - [ ] Review content with members & patrons 171 | - [x] We need a CONTRIBUTING.md, something along the lines of [ParticipatoryOrgs-Community/CONTRIBUTING.md](https://github.com/ParticipatoryOrgs/ParticipatoryOrgs-Community/blob/master/CONTRIBUTING.md) & [ipfs/contributing.md](https://github.com/ipfs/community/blob/master/contributing.md) 172 | - [ ] Review content with members & patrons 173 | - [x] We need a Contributors Agreement (pending legal formation) 174 | - [x] Create website for blockchaincommons.com, maybe blockchaincommons.org (ChristopherA currently holds these domains) 175 | - [ ] Legal formation 176 | - [ ] Investigate legal formation options (LLC, L4C, etc.) and legal venues (US, Deleware, Wyoming, overseas,etc.) 177 | - [ ] Investigate a formal relationship with [Software Freedom Conservancy](https://sfconservancy.org/) for those US patrons who wish to contribute tax-deductible funds. 178 | - [ ] Funding 179 | - [ ] Submit proposals to various foundations desiring to support commons activities 180 | 181 | ## Status — Varied 182 | 183 | Please read the statuses in individual repos. Many projects are still in testing phase and should not be used for production tasks until they have had further testing and auditing. 184 | 185 | ## Origins, Authors, Copyright & License 186 | 187 | Unless otherwise noted (either in the README.md for an individual repo or in an individual file's header comments) the contents of this GitHub are Copyright © 2020 by Blockchain Commons, LLC, and are [licensed](./LICENSE) under the [spdx:BSD-2-Clause Plus Patent License](https://spdx.org/licenses/BSD-2-Clause-Patent.html). 188 | 189 | In most cases, the authors, copyright, and license for each file reside in header comments in the source code. When it does not, we have attempted to attribute it accurately tables in individual READMEs. 190 | 191 | ## Financial Support 192 | 193 | The Community is a project of [Blockchain Commons](https://www.blockchaincommons.com/). We are proudly a "not-for-profit" social benefit corporation committed to open source & open development. Our work is funded entirely by donations and collaborative partnerships with people like you. Every contribution will be spent on building open tools, technologies, and techniques that sustain and advance blockchain and internet security infrastructure and promote an open web. 194 | 195 | To financially support further development of `$projectname` and other projects, please consider becoming a Patron of Blockchain Commons through ongoing monthly patronage as a [GitHub Sponsor](https://github.com/sponsors/BlockchainCommons). You can also support Blockchain Commons with bitcoins at our [BTCPay Server](https://btcpay.blockchaincommons.com/). 196 | 197 | ### Current Sustaining Patrons 198 | 199 | Please see our [Sponsors page](https://www.blockchaincommons.com/sponsors.html) for our best list of sustaining patrons. 200 | 201 | ### Past Sustaining Patrons 202 | 203 | * [Tuur Demeester](mailto:tuurdemeester@gmail.com) 204 | * Investment analyst, recommended Bitcoin since 2012 205 | * Founder & CEO of Adamant Capital 206 | * Blogs on [Medium](https://medium.com/@tuurdemeester) and on Twitter is [@TuurDemeester](https://twitter.com/TuurDemeester). 207 | * Originally from Belgium, resides in Austin, TX 208 | * [Wayne Vaughan](mailto:wayne@tierion.com) 209 | * Founder/CEO [Tierion](https://tierion.com) 210 | * Advisor [Blockchain Capital](http://twitter.com/blockchaincap) 211 | * Director [DIF (Decentralized Identity Foundation)](http://identity.foundation/) 212 | * Blogs on [Medium](https://medium.com/@WayneVaughan) and on Twitter is [@WayneVaughan](https://twitter.com/WayneVaughan). 213 | * Resides in the Bay Area of California USA 214 | 215 | ## Contributing 216 | 217 | We encourage public contributions through issues and pull requests! Please review [CONTRIBUTING.md](./CONTRIBUTING.md) for details on our development process. All contributions to this repository require a GPG signed [Contributor License Agreement](./CLA.md). 218 | 219 | ## Responsible Disclosure 220 | 221 | We want to keep all of our software safe for everyone. If you have discovered a security vulnerability, we appreciate your help in disclosing it to us in a responsible manner. We are unfortunately not able to offer bug bounties at this time. 222 | 223 | We do ask that you offer us good faith and use best efforts not to leak information or harm any user, their data, or our developer community. Please give us a reasonable amount of time to fix the issue before you publish it. Do not defraud our users or us in the process of discovery. We promise not to bring legal action against researchers who point out a problem provided they do their best to follow the these guidelines. 224 | 225 | ### Reporting a Vulnerability 226 | 227 | Please report suspected security vulnerabilities in private via email to ChristopherA@BlockchainCommons.com (do not use this email for support). Please do NOT create publicly viewable issues for suspected security vulnerabilities. 228 | 229 | The following keys may be used to communicate sensitive information to developers: 230 | 231 | | Name | Fingerprint | 232 | | ----------------- | -------------------------------------------------- | 233 | | Christopher Allen | FDFE 14A5 4ECB 30FC 5D22 74EF F8D3 6C91 3574 05ED | 234 | 235 | You can import a key by running the following command with that individual’s fingerprint: `gpg --recv-keys ""` Ensure that you put quotes around fingerprints that contain spaces. 236 | 237 | ## Version History 238 | 239 | * 2020-12: Community README standardized 240 | * 2020-08: Community README updated 241 | * 2018-05: Community repository started on Github 242 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # LICENSE-CC-BY-4.0.md 2 | 3 | UNLESS OTHERWISE NOTED, THE CONTENTS OF THIS DIRECTORY ARE LICENSED UNDER THE CREATIVE COMMONS ATTRIBUTION 4.0 4 | INTERNATIONAL LICENSE. 5 | 6 | ![https://creativecommons.org/licenses/by/4.0/](https://i.creativecommons.org/l/by/4.0/88x31.png) ![Approved for](https://creativecommons.org/images/deed/seal.png) 7 | 8 | ## License Summary of CC-BY 4.0 International 9 | 10 | *This section is a human-readable summary of (and not a substitute for) the full license included below.* 11 | 12 | ### You are free to: 13 | 14 | * **Share** — copy and redistribute the material in any medium or format 15 | * **Adapt** — remix, transform, and build upon the material for any purpose, even commercially. 16 | 17 | The licensor cannot revoke these freedoms as long as you follow the license terms. 18 | 19 | ### Under the following terms: 20 | 21 | * ![CC-BY](https://creativecommons.org/images/deed/by.png) **Attribution** — You must give **appropriate 22 | credit**, provide **a link to the license**, and **indicate if changes were made**. You may do so in any 23 | reasonable manner, but not in any way that suggests the licensor endorses you or your use. 24 | 25 | **No additional restrictions** — You may not apply legal terms or technological measures that legally restrict 26 | others from doing anything the license permits. 27 | 28 | ### Notices: 29 | 30 | You do not have to comply with the license for elements of the material in the public domain or where your use 31 | is permitted by an applicable **exception or limitation**. 32 | 33 | No warranties are given. The license may not give you all of the permissions necessary for your intended use. 34 | For example, other rights such as **publicity, privacy, or moral rights** may limit how you use the material. 35 | 36 | # Creative Commons Attribution 4.0 International License 37 | 38 | FROM: https://creativecommons.org/licenses/by/4.0/ 39 | 40 | Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. 41 | 42 | ### Using Creative Commons Public Licenses 43 | 44 | Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. 45 | 46 | * __Considerations for licensors:__ Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. [More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors). 47 | 48 | * __Considerations for the public:__ By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. [More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees). 49 | 50 | ## Creative Commons Attribution 4.0 International Public License 51 | 52 | By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. 53 | 54 | ### Section 1 – Definitions. 55 | 56 | a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. 57 | 58 | b. __Adapter's License__ means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. 59 | 60 | c. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. 61 | 62 | d. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. 63 | 64 | e. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. 65 | 66 | f. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License. 67 | 68 | g. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. 69 | 70 | h. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License. 71 | 72 | i. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. 73 | 74 | j. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. 75 | 76 | k. __You__ means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. 77 | 78 | ### Section 2 – Scope. 79 | 80 | a. ___License grant.___ 81 | 82 | 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: 83 | 84 | A. reproduce and Share the Licensed Material, in whole or in part; and 85 | 86 | B. produce, reproduce, and Share Adapted Material. 87 | 88 | 2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 89 | 90 | 3. __Term.__ The term of this Public License is specified in Section 6(a). 91 | 92 | 4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 93 | 94 | 5. __Downstream recipients.__ 95 | 96 | A. __Offer from the Licensor – Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. 97 | 98 | B. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 99 | 100 | 6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). 101 | 102 | b. ___Other rights.___ 103 | 104 | 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 105 | 106 | 2. Patent and trademark rights are not licensed under this Public License. 107 | 108 | 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. 109 | 110 | ### Section 3 – License Conditions. 111 | 112 | Your exercise of the Licensed Rights is expressly made subject to the following conditions. 113 | 114 | a. ___Attribution.___ 115 | 116 | 1. If You Share the Licensed Material (including in modified form), You must: 117 | 118 | A. retain the following if it is supplied by the Licensor with the Licensed Material: 119 | 120 | i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); 121 | 122 | ii. a copyright notice; 123 | 124 | iii. a notice that refers to this Public License; 125 | 126 | iv. a notice that refers to the disclaimer of warranties; 127 | 128 | v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; 129 | 130 | B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and 131 | 132 | C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 133 | 134 | 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 135 | 136 | 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 137 | 138 | 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. 139 | 140 | ### Section 4 – Sui Generis Database Rights. 141 | 142 | Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: 143 | 144 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; 145 | 146 | b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and 147 | 148 | c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. 149 | 150 | For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. 151 | 152 | ### Section 5 – Disclaimer of Warranties and Limitation of Liability. 153 | 154 | a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__ 155 | 156 | b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__ 157 | 158 | c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. 159 | 160 | ### Section 6 – Term and Termination. 161 | 162 | a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. 163 | 164 | b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 165 | 166 | 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 167 | 168 | 2. upon express reinstatement by the Licensor. 169 | 170 | For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. 171 | 172 | c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. 173 | 174 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. 175 | 176 | ### Section 7 – Other Terms and Conditions. 177 | 178 | a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. 179 | 180 | b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. 181 | 182 | ### Section 8 – Interpretation. 183 | 184 | a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. 185 | 186 | b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. 187 | 188 | c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. 189 | 190 | d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. 191 | 192 | > Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. 193 | > 194 | > Creative Commons may be contacted at creativecommons.org 195 | --------------------------------------------------------------------------------