Blockchain for program code credit and programmer contribution in a collective
US-2018189732-A1 · Jul 5, 2018 · US
US10579368B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10579368-B2 |
| Application number | US-201715456278-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 10, 2017 |
| Priority date | Mar 10, 2017 |
| Publication date | Mar 3, 2020 |
| Grant date | Mar 3, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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;
Distributed indices · CPC title
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.