npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ideablock-commit

v1.0.10

Published

CLI tool for anchoring git commit hashes to Bitcoin and Litecoin blockchains

Downloads

10

Readme

Make your CI/CD pipeline immutable by leveraging the power of IdeaBlock to automatically tether git commits to the Bitcoin and Litecoin blockchains.

Summary

So what does IdeaBlock Commit do, exactly? Every time a user makes a commit to a local git repository in which IdeaBlock Commit is initialized, it does the following:

  1. Retrieves the SHA-1 (short hash) generated by git for the commit immediately prior
  2. Packages the repository's files (that are not ignored by a .gitignore) and compresses the repository into a commit-specific snapshot in tarball form.
  3. Computes the SHA-256 of that zip snapshot
  4. Concatenate the SHA-256 with the SHA-1 short hash
  5. Generates a random parity kaboose bit (from 0-9, exclusive), which will be placed at the end of the concatenated hash string
  6. Prepends "IDEA" in hexidecimal to the front of this concatenation ("49444541")
  7. Embeds this resulting string, which will always be 80 bytes in length, to the Bitcoin and Litecoin blockchains
  8. Returns the Bitcoin and Litecoin transaction addresses to your terminal immediately
  9. Stores the archive file repository snapshot, all relevant hash and blockchain information, and auth info in a custom "commit" subdirectory located at ~/.ideablock/commits (dont delete this!)
  10. Using this method of automatic commit tethering, the code in your version control system is verified by an external distributed timestamping system and is backed up and proven in a way that is unassailable, unchangeable, and provable in the event of subsequent legal or compliance challenges.

Prerequisites

Installation

npm

> npm i -g ideablock-commit

Git

> git clone https://github.com/ideablock/commit.git
> cd commit
> npm i -g

Tarball

  • Get the current tarball IdeaBlock Commit homepage
  • Unpack the tarball
  • From the root of the unpacked ideablock-commit directory, install the package globally by running:
> wget https://ideablock.io/ideablock-commit-latest.tgz
> tar -xzvf ideablock-commit-latest.tgz
> npm i -g

Usage

Initialization From any root directory of a git repo, run the following to initialize automatic git commit blockchain tethering in that repository:

> ideablock-commit init

Turn Off (Pause) Again, in a git repository root directory, turn off (pause) automatic commit tethering in that repository by using the off or pause command:

> ideablock-commit off
> ideablock-commit pause

Turn On (Resume) Resume automatic commit tethering in a repository where this functionality is presently paused by using the on or resume command:

> ideablock-commit on
> ideablock-commit resume

Status Not sure if automatic blockchain tethering is on or off before you commit your code? You can print this information to the terminal by calling the status command at any time:

> ideablock-commit status

Remove You can completely remove IdeaBlock Commit functionality from your repository at any time by calling the remove command. If you would like to add it again later, just call the init function in the root directory of the repository at that time. The following commands are identical.

> ideablock-commit remove
> ideablock-commit uninstall

Beta

Important Information: The current version is an initial release of IdeaBlock Commit and should be considered very beta. Its functionality has been tested by our team - but please be aware that this is not production-ready software. Please feel free to submit pull requests to add features or to let us know about any issues at the IdeaBlock Commit source page on GitHub. You can also find the package on npm and yarn.

It is very important to remember that IdeaBlock never receives the actual files that form the substance of the repository you protect with IdeaBlock Commit - they stay with you, locally. It is therefore incumbent on every user to practice good operational security and ensure that a redundancy plan is in place when it comes to the files stored in your ~/.ideablock/commits directory.

By only sending IdeaBlock the hashes associated with your repositories, you are even protecting yourself against any future argument that you disclosed a trade secret to a third party - namely, us!

Thank you for your interest in IdeaBlock Commit and the rest of our early software tools, which include IdeaBlock Beta and IdeaBlock CLI with more coming soon! We appreciate your help and feedback - they are key in making our offerings as robust and bug-free as possible!

Follow us on Twitter and our other official channels


₁ Please be sure to read and agree to IdeaBlock Beta Terms and Conditions when you register