US20180173719A1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

THAT TARTANI A MANO ALTO TUOMOMT MALTA MAI US 20180173719A1

( 19) United States


(12 ) Patent Application Publication ( 10) Pub . No.: US 2018 /0173719 A1
Bastide et al. (43) Pub. Date : Jun . 21, 2018
(54 ) SHARED DOCUMENT EDITING IN THE
BLOCKCHAIN
(52 ) CPC
U .S. CI .
........ GO6F 1730165 ( 2013 .01) ; G06F 17 / 24
( 2013 .01 ); G06F 17/30091 (2013.01); G06F
(71) Applicant: International Business Machines 21/6218 (2013 .01 )
Corporation , Armonk , NY (US)
(72 ) Inventors: Paul R . Bastide, Boxford ,MA (US); (5757)) ABSTRACT
Jonathan Dunne , Waterford ( IE ); Liam
Harpur , Dublin ( IE ) ; Robert E .
Loredo, Miami, FL (US )
( 21) Appl. No.: 15 / 381,692 A blockchain of transactions may be referenced for various
purposes and may be later accessed by interested parties for
(22 ) Filed : Dec . 16 , 2016 ledger verification . One example operation may comprise
one or more of identifying determining a shared file is being
Publication Classification edited by one or more entities , identifying one or more
(51) Int . CI. changes to the shared file while the shared file is being
G06F 1730 (2006 .01) edited, signing the one or more changes with one or more
G06F 21/62 ( 2006 . 01) public keys , and adding the one or more changes to a
G06F 17 /24 (2006 .01) blockchain .

200
ProvvXVVWWWWWWWWMMERXX WOODWwwmonem
w

ww
Ww n

don a
SHARING ENTITY

Bu
210

SHARE
DOCUMENT
212
wam
veron
BLOCKCHAIN
220
Wwn KUWATEX SHARED ENTITY
230
with
NOTIFY SHARED ENTITY OF SHARED
DOCUMENT
214

EDIT DOCUMENT
216

SHARE EDITS
218
wwwww WERMEN

omakonwy

Pan o w LOG DOCUMENT


222
LAWMMMMMMMMMM
wwww w wwwwww

wuoa
PaSubocado
na
SIGN EDITS
224
odloge

LOG DELTAS
FROM THE EDITS
226

CALCULATE
VALIDATION TIME
Now
nanananana
228
. . do

odmy CREATE NEW


DOCUMENT
VERSION F

YuiT com w VALIDATION TIME


EXCEEDS
THRESHOLD
232
Patent Application Publication Jun . 21, 2018 Sheet 1 of 5 US 2018 /0173719 A1

100
104

ROJECT EVEREST PROPOSAL


wwwwwwwwwwwwwwwwwwwwwwww wwwwwww w wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wiwwwwwwwwwwwwwwwwwwwwwwww

*
* 499A mo Lorem ipsum dolor sit amet, persius
ancillae ne pro . Natum numquam alic
no nec , quo in essent torquatos . Has X
PAMN labores meliore incorrupte in , ei eos dicunt
audiam temporibus. Ut est aliquam
minimum neglegentur, case insolens
honestatis nec ex , id populo commodo
suscipiantur cum . Vel atmovet tacimates
W
ullamcorper. At duo detraxit torquatos
comprehensam . 126
T4
DODANO DON DOLDURDURDURDUBANDUSDURDADA 128 ??????????????????????????????????????????????????

* * DO
Pri veniam utamur partiendo in . Vis ea virtute officiis luptatum ut vel reque mollis
apeirian , an ludus voluptatum vituperatoribus usu . Ut vix diam malis nostrud , ad eam Ww
velit pertinax torquatos, nisi electram persecuti est te . At omnis suscipianturmea ,
convenire suscipiantur an vim . Eam at nullam dolores contentiones , ei sea porro debet
8o . w

integre .
4 .000L LUULUULEKALELE T5 2 .1 . 1 . 2 . 1 . 1 . 2 . 1. 1 . 2 . 2 . 2 . 2 . 1. 2 . 4 . 4 1 . 2 . 1 2 . 2 . 1 . 2 .1 . 1 . 2 . 1 . 1 . 2 . 0 . 1 . 22 .22. 224.11.04 1. 2 . 2 . 4 1 . 2 .1 . 1 . 2 . 1 . 1 . 2 . 1. 1 . 2 . 1 . 1 . 2 . 1 . 2 . 2 .02.21. 2 . 1 . 2 . 1 . 2 . 2 .11. 2 . 1. 1 . 2 . 1 . 1 . 2

not 132

w
* N * * *

FIG . 1
Patent Application Publication Jun . 21, 2018 Sheet 2 of 5
US2018/0173719 21
US 2018 /0173719 A1

200

EE
YYYYYYYYYYYYYYYYYYYYYYYY Y YYYYYYY Y YYYYYYYYYYY Y YYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYYYYYYYYYYY Y YYYYYYYYYYY
*

*RARA

A
*
SHARING ENTITY .O2o1
210 W BLOCKCHAIN
220
*Wx x
SHARED ENTITY
230
w
wwwwwwww

SHARE
DOCUMENT
ww
212
NOTIFY SHARED ENTITY OF SHARED
DOCUMENT
214
?
0DE1 W 4

.
*

XX
EDIT DOCUMENT
216
M

ount

WW SHARE EDITS
TRY

218
wwwwwwwwwwwwwwwww KKKKKKK wwwwwwww w wwwwwwwww

W LOG DOCUMENT
w 222

W w

SIGN EDITS
224
07
ww
++++++++++ + ++ KKK * * * ** * * * * * + + + + + + + +++

www

LOG DELTAS
FROM THE EDITS
226

CALCULATE
.

trein VALIDATION TIME

geodt 2444
*
wwwwwwww
CREATE NEW
w
4 44444444444
wwwwwwwwwww

DOCUMENT
VERSION IF

w VALIDATION TIME
EXCEEDS
THRESHOLD
wwwwxxxxxxxxw
232
w

FIG . 2
Patent Application Publication Jun . 21, 2018 Sheet 3 of 5 US 2018 /0173719 A1

300

DETERMINING A SHARED FILE IS BEING


Xo
my EDITED BY ONE OR MORE ENTITIES

xxx *
312
*

IDENTIFYING ONE OR MORE CHANGES TO

w
A

THE SHARED FILE WHILE THE SHARED FILE IS NA


+

BEING EDITED
314 +

SIGNING THE ONE OR MORE CHANGES WTH

MO Xowum
ONE OR MORE PUBLIC KEYS
316

morecommonamommacamwwww
wowo
DATR
mon ADDING THE ONE OR MORE CHANGES TO A
BLOCKCHAIN
318

FIG . 3A
Patent Application Publication Jun . 21, 2018 Sheet 4 of 5 US 2018 /0173719 A1

350

TAM DETERMINING A SHARED FILE IS BEING


EDITED BY ONE OR MORE ENTITIES

+ AAAA . . . + + .. . . . A + .. . + . + . .. AAAALA + .
352
. . . A AAAAAC + + + .... . . . . . .. . .. . . . .. ... . ..
KAUka
????????????????????????

IDENTIFYING ONE OR MORE CHANGES TO A

A PRIVILEGED PORTION OF THE SHARED FILE


WHILE THE SHARED FILE IS BEING EDITED

www .
354

twitter
WART
REQUESTING CONSENSUS OF THE CHANGES
AURMIN FROM THE ONE OR MORE ENTITIES
356
WW

www

ADDING THE ONE OR MORE CHANGES TO A

KUAL BLOCKCHAIN RESPONSIVE TO RECEIVING


THE CONSENSUS
358
WA

FIG . 3B
Patent Application Publication Jun . 21, 2018 Sheet 5 of 5 US 2018 /0173719 A1

400 oo
*

0 56
*

PROCESSOR MEMORY
420 410
*

560000000000000000 00000000000ooooooo 30665000000500000

XXX
*

SOFTWARE 00 *0 0
o

MODULE
430
*00 0 0 0
OSCOS

o
o

FIG . 4
US 2018 /0173719 A1 Jun . 21, 2018

SHARED DOCUMENT EDITING IN THE [0009 ] FIG . 3A illustrates a flow diagram of an example
BLOCKCHAIN method of validating document edit transactions according
to example embodiments .
TECHNICAL FIELD [0010] FIG . 3B illustrates a flow diagram of an example
[ 0001] This application relates to storing transaction in a method of validating document edit transactions according
shared environment, and more particularly , to sharing docu to example embodiments .
ment editing in the blockchain . [0011] FIG . 4 illustrates an example network entity con
figured to support one or more of the example embodiments .
BACKGROUND DETAILED DESCRIPTION
[0002] The blockchain has proven useful for financial [0012 ] It will be readily understood that the instant com
transactions and similar types of transactions between vari ponents, as generally described and illustrated in the figures
ous participants . Blockchains are append - only databases of herein , may be arranged and designed in a wide variety of
transactions, which are shared and replicated with a con different configurations . Thus , the following detailed
sensus algorithm to resolve distributed processing conflicts description of the embodiments of at least one of a method ,
and prove the validity of the transactions. Each transaction apparatus, non - transitory computer readable medium and
signs and builds on the prior transaction to form an accurate system , as represented in the attached figures, is not intended
accounting of ownership and value. Each approved trans to limit the scope of the application as claimed , but is merely
action becomes part of the chain and is shared among representative of selected embodiments .
multiple entities, such as enterprise organizations. A ledger 10013 ] The instant features, structures , or characteristics
model can be quickly adapted for other purposes related to
tracking and monitoring user activities, especially , high as described throughout this specification may be combined
transaction volume systems. These adaptations may undergo in any suitable manner in one or more embodiments. For
interchange settlement lag, pegged currency of transactions example , the usage of the phrases “ example embodiments” ,
and high - speed negotiations. “ some embodiments ” , or other similar language , throughout
this specification refers to the fact that a particular feature ,
[0003 ] Sidechains were developed to address issues with structure , or characteristic described in connection with the
interchange settlement lag, pegged currency of transactions embodiment may be included in at least one embodiment.
and high - speed negotiation . These secondary chains quickly Thus, appearances of the phrases “ example embodiments ” ,
clear transactions and speed the proof-of-work process . “ in some embodiments” , “ in other embodiments ” , or other
While these secondary chains speed transactions, the overall similar language, throughout this specification do not nec
validation chain could still be further optimized in real- time essarily all refer to the same group of embodiments , and the
transactions. described features , structures , or characteristics may be
SUMMARY combined in any suitable manner in one or more embodi
ments .
[ 0004 ] One example embodiment may include a method [0014 ] In addition , while the term “ message” may have
that comprises one or more of determining a shared file is been used in the description of embodiments, the application
being edited by one or more entities, identifying one or more may be applied to many types of network data, such as ,
changes to the shared file while the shared file is being packet, frame, datagram , etc . The term "message” also
edited , signing the one or more changes with one or more includes packet, frame, datagram , and any equivalents
public keys , and adding the one or more changes to a thereof. Furthermore , while certain types of messages and
blockchain . signaling may be depicted in exemplary embodiments they
[0005] Another example embodiment may include an are not limited to a certain type of message, and the
apparatus that includes a processor configured to perform application is not limited to a certain type of signaling.
one or more of determine a shared file is being edited by one [0015 ] Example embodiments provide blockchain trans
or more entities , identify one or more changes to the shared action validation in real-time for document editing.
file while the shared file is being edited , sign the one or more Examples include, managing versions of a document based
changes with one or more public keys, and add the one or on the complexity of the blockchain validation , adding a
more changes to a blockchain . new document to the document editing software , sharing the
[0006 ] Still another example embodiment may include a document between multiple parties , monitoring changes/
non - transitory computer readable medium with instructions transactions to the document, adding each of the transactions
that when executed cause a processor to perform one or to a blockchain or sidechain , monitoring the complexity of
more of determining a shared file is being edited by one or validation for the blockchain , versioning the document and
more entities, identifying one or more changes to the shared creating a new blockchain when the complexity exceeds a
file while the shared file is being edited , signing the one or set threshold base on time, cycles, memory , etc .
more changes with one or more public keys , and adding the [0016 ] In one example , a user ‘ A ’ shares a file with a
one or more changes to a blockchain . customer ' B ' and colleague ' C '. The file is being edited
simultaneously and contains privileged information . A gen
BRIEF DESCRIPTION OF THE DRAWINGS esis block is created using a cryptographic hash using the
initial document as input. ' B ' updates the file in a privileged
[0007 ] FIG . 1 illustrates a shared document editing section : T1 ( 1 )- A , T1( 2 ) confidential. The application then
example according to example embodiments . signs the delta change with ' A ' and ' B ' ' s public keys and
[0008 ] FIG . 2 illustrates a blockchain -based system pro sends the Ti delta to their sharing systems. ' B ' updates the
cedure diagram of receiving and validating transactions to a file in a non - privileged section : T2 (1)-DELETE ( X ). The
document according to example embodiments . application signs the delta change T2 with ‘ A ’ and “ C ” s
US 2018 /0173719 A1 Jun . 21, 2018

public keys and sends the T2 delta to their sharing systems. amount of timeto validate (i.e ., 10 seconds). The application
The application uses extra time evaluating all the real- time compares the 10 second value to a threshold (i.e ., 5 seconds ).
transactions to reduce the time for blockchain transaction The application calculates the new genesis block using a
validations. “ T ' is the prefix of a transaction , '# ' is the cryptographic hash and using the new document as input for
number of the transaction , ' A ' is the first transaction ' s first the computation . The application creates a new version ‘V2'
contents , confidential is the first transaction ' s second con of the document . This scenario may be further expanded to
tents , and ‘ T2 ( 1 ) ' is the first content which is a delete of demonstrate the value of keeping a short blockchain so the
content ‘ X ', and where ‘ X ' could have been , in this example , cryptographic functions are performed at an optimal rate . A
the word “ paper' or the word ‘yogurt'. genesis block is the first block of a blockchain . Often the
[0017 ] The application utilizes and manages versions of a genesis block is hardcoded , in this case it could be a
document based on the complexity of the blockchain vali cryptographic hash of the document for validating the docu
dation . For example, the process may include adding a new ment ‘ as -is ' and permitting verification prior to analysis.
document to the document editing software [DOC1], sharing 10020 ] In another example , the new document may be a
the document [DOC1 ] between multiple parties [ A , B , E ], new document to the document editing software [DOC1 ]. In
monitoring changes/transactions to the document [DOC1], this example , the document is shared between multiple
adding each of the transactions to a blockchain (or parties [ A , B , E ]. The application can operate with a real
sidechain ) [B1] , monitoring the complexity of the valida time word processing editor. A new file is detected and
tions for the blockchain [B1], and when the complexity created . The file creation may be detected via a user interface
exceeds a set threshold based on time for validation and /or hook or event notification , which indicates that a new file is
computing resources, creating a new version of the docu created . The application subsequently sets up blockchain
ment [DOC1> DOC1(1) ] and creating a new blockchain partnerships with the parties that are jointly editing the file .
[ B1 ( 1)]. The blockchains may be remote or localized to the system .
[ 0018 ] Another approach to reducing document complex When monitoring changes /transactions to the document
ity and validation time is to assign document regions which [DOC1 ], for each new change to the document, the appli
may be “ edit heavy ” , having many edits in a particular page cation captures a transaction and persists the transaction to
or page portion , with their own side chain or version in the the distributed and auditable ledger , such as the transactions
blockchain . Document regions can be spatially aware and changes to an example document as illustrated in FIG .
sidechains that dynamically create additional sidechains
within the document so that congestion in one region does [0021] Referring to FIG . 1, a shared document editing
not impact edits in other regions . The system maintains and example is illustrated according to example embodiments.
adds a timing component within the blockchain , such that Transactions may be based on the user 's pause within an
the “mining” to validate a change includes checking a editing session (i.e ., stop typing , navigate versus type , etc .),
threshold “ human user time to complete” in , for example , and / or a user context change . Adding each of the transac
seconds. For example , a particular paragraph of a document tions to a blockchain (or sidechain ) [B1] for each of the
could have the following aggregate statistics : paragraph ID : transactions, the application adds each of the transactions to
341b , average time to review : 16 seconds, average time to the blockchain as they are identified . The application may
read : 9 seconds. With the above information , when user ‘ A ’ keep an audit log going when there are a high number of
submits a change in paragraph ID 341b , in certain circum transactions on a particular resource in an effort to minimize
stances, subsequent processing may be short circuited on the or delay potential inappropriate activity . The application
other nodes such that the paragraph is accepted . A block may use shadowed /anticipated transactions . The application
chain will have the timing input, and a sidechain may be may present the ordering as a graph with actual transactions
created for another transaction . The validation time deter as one color, unexpected transactions as another color,
mines when a new genesis block is created or a new expected but unrealized transactions as still another color.
blockchain is created . When the validation time exceeds a The application dynamically detects and reacts to temporal
threshold , a new document version is created. A new version changes to graph model representations of the transactions
may be smaller and/ or faster because it has none of the such as time lag based on certain behaviors of nodes at a
previous edits . given time ( T6 ) as processing faster based on a color, or
[ 00191 In another example ‘ A ’ shares a file with a customer better quality of results as ( T7 ) another color . The applica
‘ B ' and colleague ' C '. The application detects that a new tion may compare complexity of the transactions after a
document is added to the document editing software , and quiescence of transactions in files . Additionally , a change in
shared between multiple parties. The application calculates content may be a transaction , which is logged into the
the genesis block using a cryptographic hash using the initial blockchain . A context change may also be an event that
document as input. The document/file may be edited simul triggers a blockchain log transaction , however, such an event
taneously by more than one participant and may contain is not as elevated in priority as the content change which is
privileged information . 'B ' updates the file in a privileged more likely to trigger a specific transaction .
section [ T1( 1 )- A , T1( 2 )- confidential ]. The transaction is [0022] FIG . 1 includes a document interface 100 with a
added to the blockchain B1. The application signs the delta document title 104 which was recently edited at T1 - 122 , the
change with ‘ A ’and ‘ C ’’ s public keys and sends the T1 delta document interface may include a menu bar 102 as found in
to their sharing systems. ' B ' updates the file in a non any document interface . Other edits T2 - 124 , T3 - 126 , T4 - 128
privileged section [T2 ( 1) - DELETE ( X )]. The application and T5 - 132 may be performed in the order they are labeled
signs the delta change T2 with ' A ' and ' C ’ ’ s public keys and and may include highlights or other indicators in the docu
sends the T2 delta to their sharing systems. The application ment, such as 'track changes ' to illustrate the author and/or
adds the transaction to the blockchain B1, which validates substance of the transactions. Monitoring the complexity of
the transaction and determines the blockchain takes X the validation for the blockchain [B1], the application vali
US 2018 /0173719 A1 Jun . 21, 2018

dates the transaction ledger and records the time taken to leged portions of the shared file , storing the one or more
validate the blockchain . The complexity of the validation changes in the blockchain based on the updates to the
may have a minimum time before a chain is evaluated with non - privileged portions of the shared file, determining an
a threshold time (e . g ., 30 seconds, 30 minutes , 8 hours, 12 amount of time needed to validate the one or more changes
hours , 24 hours, 1 week ). When the complexity exceeds a set stored in the blockchain , comparing the amount of time
threshold , versioning the document [DOC1 > DOC1( 1 )] and needed to validate the one or more changes to a threshold
creating a new blockchain based on the new document B1 amount of time, and determining the amount of time needed
( 1 ) . Based on the total time taken to validate , the application exceeds the threshold amount of time. Also , responsive to
may create new versions of the document and create a new identifying the threshold amount of time has been exceeded ,
genesis in the blockchain based on the new document. The the method may include creating a new genesis block based
application may manage drafts , co - edits , contracts and ver on the changes to the shared file and creating a new version
sioning based on blockchain complexity. The application of the shared file .
may create versions based on time, complexity of crypto [0025 ] FIG . 3B illustrates a flow diagram of an example
graphic validation and /or the number of transactions. The method of validating document edit transactions according
application may split or use a consensus to validate the to example embodiments . Referring to FIG . 3B , themethod
version . Branches may expire , which are built based on the 350 may include determining a shared file is being edited by
split. Document regions which have multiple edits would one or more entities 352 , identifying one or more changes to
have their own “ version ” in a blockchain as a way to manage a privileged portion of the shared file the shared file is being
those edits in real time. For instance, the title page may have edited 354 , requesting consensus of the changes from the
infrequent edits but the introduction and conclusion may one or more entities 356 , and adding the one or more
undergo multiple edits . The number of edits , when exceed changes to a blockchain responsive to receiving the consen
ing a threshold , may require a customized blockchain . The sus 358 . In this example embodiment, when a privileged
version implies it used until a new version of the document portion of the document is being edited , the shared users
is published for the entire document. This approach permits may require a consensus prior to finalizing the changes to
a blockchain to be created for a particular editing scenario prevent unwanted changes and provide traceability to the
based on a number of edits, parts of the document being changes. Each user with access to the privileged portions of
edited and the stage of the document ( i.e ., edited , complete , a documentmay receive a notification based on the edits and
etc . ). the consensus model may require two or more members to
[0023 ] FIG . 2 illustrates a blockchain -based system pro agree to the changes prior to finalization and validation in
cedure diagram of receiving and validating transactions to a the blockchain .
document according to example embodiments. Referring to [0026 ] The above embodiments may be implemented in
FIG . 2 , the system 200 includes a first entity as a sharing hardware , in a computer program executed by a processor,
entity or sharing entity computer 210 , which may be the in firmware , or in a combination of the above . A computer
author of a document of the party sharing the document with program may be embodied on a computer readable medium ,
other entities represented by the shared entity or shared such as a storage medium . For example, a computer program
entity computer 230 . In operation , the document is created / may reside in random access memory (“ RAM ” ), flash
shared 212 and the shared entity 230 may receive access to memory , read -only memory (“ ROM " ), erasable program
the document 214 . All shared parties can then edit the mable read -only memory (“ EPROM ” ) , electrically erasable
document in real -time. The document edits 216 are identi programmable read -only memory (“ EEPROM ” ), registers,
fied and shared with all parties 218 . The edits trigger a log hard disk , a removable disk , a compact disk read -only
operation 222 in the blockchain 220 (which may be located memory (“ CD -ROM ” ) , or any other form of storage
on another computer, on entity 210 or on entity 230 ) and the medium known in the art.
edits can be signed 224 and the deltas 226 identified from [0027] An exemplary storage medium may be coupled to
each edit instance and logged accordingly as blockchain the processor such that the processor may read information
transactions each time there is an edit. When validation from , and write information to , the storage medium . In the
occurs , the time/resources needed 228 to perform the vali alternative , the storage medium may be integral to the
dation (s ) is /are identified and used to compare to a baseline processor. The processor and the storage medium may reside
threshold of efficiency . When efficiency lags based on a in an application specific integrated circuit (“ ASIC ” ). In the
recent transaction , a new documentmay be created based on alternative , the processor and the storage medium may
the threshold measurement determination 232 . reside as discrete components . For example , FIG . 4 illus
[0024 ] FIG . 3A illustrates a flow diagram of an example trates an example network element 400 , which may repre
method of validating document edit transactions according sent or be integrated in any of the above -described compo
to example embodiments . Referring to FIG . 3A , the method nents , etc ,
300 may include determining a shared file is being edited by 10028 ]. As illustrated in FIG . 4 , a memory 410 and a
one or more entities 312 , identifying one or more changes to processor 420 may be discrete components of a network
the shared file while the shared file is being edited 314 , entity 400 that are used to execute an application or set of
signing the one or more changes with one or more public operations as described herein . The application may be
keys 316 , and adding the one or more changes to a block coded in software in a computer language understood by the
chain 318 . The method may also include creating a genesis processor 420 , and stored in a computer readable medium ,
block of the blockchain based on the shared file , updating such as, a memory 410 . The computer readable medium may
one or more privileged portions of the shared file , and be a non -transitory computer readable medium that includes
storing the one or more changes in the blackchain based on tangible hardware components, such as memory , that can
the updates to the privileged portions of the shared file . The store software . Furthermore, a software module 430 may be
method may also provide updating one or more non -privi another discrete entity that is part of the network entity 400,
US 2018 /0173719 A1 Jun . 21, 2018

and which contains software instructions that may be pose for the module. Further , modules may be stored on a
executed by the processor 420 to effectuate one or more of computer- readable medium , which may be , for instance , a
the functions described herein . In addition to the above hard disk drive, flash device , random access memory
noted components of the network entity 400 , the network (RAM ), tape , or any other such medium used to store data .
entity 400 may also have a transmitter and receiver pair 10033] Indeed , a module of executable code could be a
configured to receive and transmit communication signals single instruction , or many instructions , and may even be
(not shown). distributed over several different code segments, among
[0029 ] Although an exemplary embodiment of at least one different programs, and across several memory devices.
of a system , method , and non - transitory computer readable Similarly , operational data may be identified and illustrated
medium has been illustrated in the accompanied drawings herein within modules , and may be embodied in any suitable
and described in the foregoing detailed description , it will be form and organized within any suitable type of data struc
understood that the application is not limited to the embodi ture . The operational data may be collected as a single data
ments disclosed , but is capable of numerous rearrangements , set, or may be distributed over different locations including
modifications , and substitutions as set forth and defined by over different storage devices , and may exist, at least par
the following claims. For example , the capabilities of the tially, merely as electronic signals on a system network .
system of the various figures can be performed by one or [0034 ] It will be readily understood that the components of
more of the modules or components described herein or in the application , as generally described and illustrated in the
a distributed architecture and may include a transmitter, figures herein , may be arranged and designed in a wide
receiver or pair of both . For example , all or part of the variety of different configurations. Thus, the detailed
functionality performed by the individual modules, may be description of the embodiments is not intended to limit the
performed by one or more of these modules. Further , the scope of the application as claimed , but is merely represen
functionality described herein may be performed at various tative of selected embodiments of the application .
times and in relation to various events, internal or external [0035 ] One having ordinary skill in the art will readily
to the modules or components . Also , the information sent understand that the above may be practiced with steps in a
between various modules can be sent between the modules different order, and /or with hardware elements in configu
via at least one of: a data network , the Internet, a voice rations that are different than those which are disclosed .
network , an Internet Protocol network , a wireless device , a Therefore , although the application has been described
wired device and / or via plurality of protocols. Also , the based upon these preferred embodiments , it would be appar
messages sent or received by any of themodules may be sent ent to those of skill in the art that certain modifications,
or received directly and /or via one or more of the other variations , and alternative constructions would be apparent.
modules . [0036 ] While preferred embodiments of the present appli
0030 ] One skilled in the art will appreciate that a “ sys cation have been described , it is to be understood that the
tem ” could be embodied as a personal computer, a server, a embodiments described are illustrative only and the scope of
console, a personal digital assistant (PDA ), a cell phone, a the application is to be defined solely by the appended
tablet computing device , a smartphone or any other suitable claims when considered with a full range of equivalents and
computing device , or combination of devices . Presenting the modifications (e . g ., protocols, hardware devices , software
above- described functions as being performed by a " system ” platforms etc .) thereto .
is not intended to limit the scope of the present application What is claimed is :
in any way, but is intended to provide one example ofmany 1. A method , comprising :
embodiments . Indeed , methods, systems and apparatuses determining a shared file is being edited by one or more
disclosed herein may be implemented in localized and entities ;
distributed forms consistent with computing technology . identifying one or more changes to the shared file while
[ 0031] It should be noted that some of the system features the shared file is being edited ;
described in this specification have been presented as mod signing the one or more changes with one or more public
ules, in order to more particularly emphasize their imple keys ; and
mentation independence . For example , a module may be adding the one or more changes to a blockchain .
implemented as a hardware circuit comprising custom Try 2 . The method of claim 1 , further comprising creating a
large scale integration (VLSI) circuits or gate arrays , off genesis block of the blockchain based on the shared file .
the-shelf semiconductors such as logic chips , transistors, or 3. The method of claim 1, further comprising:
other discrete components . A module may also be imple
mented in programmable hardware devices such as field updating one or more privileged portions of the shared
programmable gate arrays , programmable array logic, pro file ; and
grammable logic devices, graphics processing units , or the storing the one or more changes in the blockchain based
like. on the updates to the privileged portions of the shared
[ 0032 ] A module may also be at least partially imple file .
mented in software for execution by various types of pro 4 . The method of claim 1, further comprising :
cessors. An identified unit of executable code may, for updating one or more non -privileged portions of the
instance, comprise one or more physical or logical blocks of shared file ; and
computer instructions thatmay , for instance , be organized as storing the one or more changes in the blockchain based
an object, procedure, or function . Nevertheless, the on the updates to the non - privileged portions of the
executables of an identified module need not be physically shared file .
located together, but may comprise disparate instructions 5 . Themethod of claim 1, further comprising determining
stored in different locations which , when joined logically an amount of time needed to validate the one or more
together, comprise the module and achieve the stated pur changes stored in the blockchain .
US 2018 /0173719 A1 Jun . 21, 2018

6 . The method of claim 5 , further comprising : 14 . A non -transitory computer readable storage medium
comparing the : amount of time needed to validate the: one configured to store instructions that when executed cause a
or more changes to a threshold amount of time; and processor to perform :
determining the amount of time needed exceeds the determining a shared file is being edited by one or more
threshold amount of time. entities ;
7 . The method of claim 6 , further comprising : identifying one or more changes to the shared file while
responsive to identifying the threshold amount of timehas the shared file is being edited;
been exceeded , creating a new genesis block based on signing the one or more changes with one or more public
the changes to the shared file ; and keys ; and
creating a new version of the shared file . adding the one or more changes to a blockchain .
8 . An apparatus , comprising 15 . The non -transitory computer readable storage medium
a processor configured to : of claim 14 , wherein the processor is further configured to
determine a shared file is being edited by one or more
perform creating a genesis block of the blockchain based on
the shared file .
entities; 16 . The non - transitory computer readable storagemedium
identify one ormore changes to the shared file while the of claim 14 , wherein the processor is further configured to
shared file is being edited ; perform :
sign the one or more changes with one or more public updating one or more privileged portions of the shared
keys, and file ; and
add the one or more changes to a blockchain . storing the one or more changes in the blockchain based
9 . The apparatus of claim 8 , wherein the processor is on the updates to the privileged portions of the shared
further configured to create a genesis block of the block file .
chain based on the shared file . 17 . The non -transitory computer readable storagemedium
10 . The apparatus of claim 8 , further comprising : of claim 14 , wherein the processor is further configured to
the processor being further configured to update one or perform :
more privileged portions of the shared file ; and updating one or more non -privileged portions of the
a memory configured to store the one or more changes in shared file ; and
the blockchain based on the updates to the privileged storing the one or more changes in the blockchain based
portions of the shared file . on the updates to the non - privileged portions of the
11 . The apparatus of claim 8 , wherein the processor is shared file .
further configured to : 18 . The non -transitory computer readable storagemedium
update one or more non - privileged portions of the shared of claim 14 , wherein the processor is further configured to
file ; and perform determining an amount of time needed to validate
store the one or more changes in the blockchain based on the one or more changes stored in the blockchain .
the updates to the non -privileged portions of the shared 19 . The non - transitory computer readable storagemedium
file . of claim 18 , wherein the processor is further configured to
12 . The apparatus of claim 8 , wherein the processor is perform :
further configured to determine an amount of timeneeded to comparing the amount of time needed to validate the one
validate the one or more changes stored in the blockchain . or more changes to a threshold amount of time; and
13 . The apparatus of claim 12 , wherein the processor is determining the amount of time needed exceeds the
further configured to : threshold amount of time.
compare the amount of timeneeded to validate the one or 20 . The non -transitory computer readable storage medium
more changes to a threshold amount of time; of claim 19 , wherein the processor is further configured to
determine the amount of time needed exceeds the thresh perform :
old amount of time; responsive to identifying the threshold amount of timehas
responsive to the threshold amount of time being been exceeded, creating a new genesis block based on
exceeded , create a new genesis block based on the the changes to the shared file ; and
changes to the shared file ; and creating a new version of the shared file .
create a new version of the shared file . * * * * *

You might also like