Blockchain version control systems

US10579368B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10579368-B2
Application numberUS-201715456278-A
CountryUS
Kind codeB2
Filing dateMar 10, 2017
Priority dateMar 10, 2017
Publication dateMar 3, 2020
Grant dateMar 3, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Distributed version control systems, methods, and computer-readable media are described. A computer system may implement a version control blockchain system by obtaining source code and/or an artifact associated with source code. The computer system may serialize the source code and/or the artifact to obtain serialized data, and may encipher the serialized data to obtain a current block identifier (cb_id). The computer system may generate a block to include the cb_id, and may add the generated block to the version control blockchain upon validation of the block. Other embodiments may be described and/or claimed.

First claim

Opening claim text (preview).

The invention claimed is: 1. One or more non-transitory computer-readable media (NTCRM) comprising instructions to implement a version control blockchain wherein execution of the instructions by at least one processing device is to cause the at least one processing device to: obtain source code or an artifact associated with the source code; serialize the source code or the artifact to obtain serialized data; encipher the serialized data to obtain a current block identifier (cb_id); generate a block to include the cb_id and another identifier, the other identifier being a previous block identifier (pb_id) of a previous block in the version control blockchain when the generated block is not a genesis block, and the other identifier being a genesis block identifier (gb_id) when the block is the genesis block, the gb_id being a predefined number, a value of zero, a timestamp of the source code or the artifact, an organization identifier associated with a creator of the source code or the artifact, a user identifier associated with a creator of the source code or the artifact, or a combination thereof; and add the generated block to the version control blockchain, wherein, to add the generated block to the version control blockchain, execution of the instructions is to cause the at least one processing device to: generate a message to include the generated block; encrypt the message after insertion of the block into the message; and transmit the encrypted message to another device for validation prior to addition of the block to the version control blockchain. 2. The one or more NTCRM of claim 1 , wherein, when the generated block is not a genesis block, execution of the instructions is to cause the at least one processing device to: insert the other identifier into the block upon generation of the block. 3. The one or more NTCRM of claim 2 , wherein execution of the instructions is to cause the at least one processing device to: insert the enciphered serialized data and the other identifier into a header section of the block; insert the serialized data into a payload section of the block; and insert an indication of a consensus algorithm into the header section or the payload section. 4. The one or more NTCRM of claim 2 , wherein the pb_id comprises enciphered content of the previous block. 5. The one or more NTCRM of claim 1 , wherein execution of the instructions is to cause the at least one processing device to: obtain another message; decrypt the other message to obtain another block; validate the other block; add the other block to the version control blockchain when the other block is properly validated. 6. The one or more NTCRM of claim 5 , wherein, to validate the other block, the set of instructions, execution of the instructions is to cause the at least one processing device to: obtain a obtain a first value from the other block; generate a second value based on a top-most block of the version control blockchain; and indicate that the other block is valid when the first value is equal to the second value. 7. A database system to implement a blockchain version control system, the database system comprising: a network interface to obtain a message from a user system, the message comprising a potential block to be added to a version control blockchain and an indication of a consensus algorithm to be used to verify contents of the potential block, contents of the potential block comprising source code, an artifact associated with the source code, or a schema associated with the source code; and a processor system to: decipher the potential block to obtain the contents of the potential block, obtain an identifier from the potential block, wherein the other identifier is a previous block identifier (pb_id) of a previous block in the version control blockchain when the previous block is not a genesis block, and the identifier is a genesis block identifier (gb_id) when the previous block is a genesis block; the gb_id being a predefined number; a value of zero: a timestamp of the source code, the artifact, or the schema; an organization identifier associated with the creator of the source code, the artifact, or the schema; a user identifier associated with the creator of the source code, the artifact, or the schema; or a combination thereof, obtain a current block identifier (cb_id) from a top-most block in the version control blockchain, the cb_id being enciphered serialized data of a previous version of the source code, the artifact associated with the source code, or the schema, verify the contents of the blockchain according to the consensus algorithm, wherein, to verify the contents of the blockchain, the processor system is to: declare the potential block to be properly verified when the pb_id is substantially identical to the cb_id according to the consensus algorithm, and add the potential block to the version control blockchain when the contents of the block are properly verified. 8. The database system of claim 7 , wherein the processor system is to: decrypt the potential block to obtain the pb_id in a header portion of the potential block, wherein the pb_id in the potential block comprises a hash value of a previous block. 9. The database system of claim 7 , wherein the processor system is to: generate a rejection message to indicate failure to add the potential block to the version control blockchain when the potential block is not properly verified. 10. The database system of claim 7 , further comprising: a source code repository implemented by a data storage device, wherein the source code repository is to store the version control blockchain. 11. The database system of claim 10 , wherein, to add the potential block to the version control blockchain, the processor system is to: provide the potential block to the source code repository; and instruct the source code repository to append the potential block to the version control blockchain. 12. The database system of claim 10 , wherein the processor is to: obtain block verification rules from the source code repository; and verify the contents of the blockchain according to the consensus algorithm and the obtained block verification rules. 13. The database system of claim 12 , wherein the block verification rules comprise format rules, and wherein, to verify the potential block, the processor system is to: implement an analysis function to determine whether the contents of the potential block comply with the format rules. 14. A user system to implement a blockchain version control system, the user system comprising: a processor system to implement an environment for developing an application, the environment being operable to: obtain, based on one or more user inputs, source code, an artifact associated with the source code, or a schema associated with the source code, serialize the source code, the artifact, or the schema to obtain serialized data; encipher the serialized data to obtain a current block identifier (cb_id), obtain another identifier, the other identifier being a previous block identifier (pb_id) of a previous block in a version control blockchain or a genesis block identifier (gb_id) when no previous block exists, the gb_id being a predefined number, a value of zero, a timestamp of the source code or the artifact, an organization identifier associated with a creator of the source code or the artifact, a user identifier associated with a creator of the source code or the artifact, or a combination thereof, and generate a block to include the cb_id, the other identifier, and the serialized data;

Assignees

Inventors

Classifications

  • Distributed indices · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • wherein the data content is protected, e.g. by encrypting or encapsulating the payload · CPC title

  • involving time stamps, e.g. generation of time stamps · CPC title

  • Ensuring data consistency and integrity · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10579368B2 cover?
Distributed version control systems, methods, and computer-readable media are described. A computer system may implement a version control blockchain system by obtaining source code and/or an artifact associated with source code. The computer system may serialize the source code and/or the artifact to obtain serialized data, and may encipher the serialized data to obtain a current block identif…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 03 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).