2016-09-08 21:13:10 +04:00
|
|
|
(**************************************************************************)
|
|
|
|
(* *)
|
|
|
|
(* Copyright (c) 2014 - 2016. *)
|
|
|
|
(* Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)
|
|
|
|
(* *)
|
|
|
|
(* All rights reserved. No warranty, explicit or implicit, provided. *)
|
|
|
|
(* *)
|
|
|
|
(**************************************************************************)
|
|
|
|
|
2016-10-06 14:55:38 +04:00
|
|
|
(** Tezos - Versioned, block indexed (key x value) store *)
|
2016-09-08 21:13:10 +04:00
|
|
|
|
|
|
|
(** A block-indexed (key x value) store directory. *)
|
|
|
|
type index
|
|
|
|
|
|
|
|
(** A (key x value) store for a given block. *)
|
2017-02-24 20:17:53 +04:00
|
|
|
type t
|
|
|
|
type context = t
|
2016-09-08 21:13:10 +04:00
|
|
|
|
2017-07-17 17:59:09 +04:00
|
|
|
type commit
|
|
|
|
|
|
|
|
val dummy_commit: commit
|
|
|
|
val commit_encoding: commit Data_encoding.t
|
|
|
|
|
2016-10-06 14:55:38 +04:00
|
|
|
(** Open or initialize a versioned store at a given path. *)
|
2016-09-08 21:13:10 +04:00
|
|
|
val init:
|
2017-02-24 20:17:53 +04:00
|
|
|
?patch_context:(context -> context Lwt.t) ->
|
2016-09-08 21:13:10 +04:00
|
|
|
root:string ->
|
|
|
|
index Lwt.t
|
|
|
|
|
2017-02-24 20:17:53 +04:00
|
|
|
val commit_genesis:
|
|
|
|
index ->
|
2017-07-17 17:59:09 +04:00
|
|
|
net_id:Net_id.t ->
|
2017-02-24 20:17:53 +04:00
|
|
|
time:Time.t ->
|
|
|
|
protocol:Protocol_hash.t ->
|
2017-07-17 17:59:09 +04:00
|
|
|
commit Lwt.t
|
2016-09-08 21:13:10 +04:00
|
|
|
|
2017-04-10 23:14:17 +04:00
|
|
|
val commit_test_network_genesis:
|
2017-07-17 17:59:09 +04:00
|
|
|
index -> Block_hash.t -> Time.t -> context ->
|
|
|
|
(Net_id.t * Block_hash.t * commit) tzresult Lwt.t
|
2017-04-10 23:14:17 +04:00
|
|
|
|
2016-09-08 21:13:10 +04:00
|
|
|
(** {2 Generic interface} ****************************************************)
|
|
|
|
|
2017-02-24 20:17:53 +04:00
|
|
|
include Persist.STORE with type t := context
|
2016-09-08 21:13:10 +04:00
|
|
|
|
|
|
|
(** {2 Accessing and Updating Versions} **************************************)
|
|
|
|
|
2017-07-17 17:59:09 +04:00
|
|
|
val exists: index -> commit -> bool Lwt.t
|
|
|
|
val checkout: index -> commit -> context option Lwt.t
|
|
|
|
val checkout_exn: index -> commit -> context Lwt.t
|
2017-04-10 14:14:11 +04:00
|
|
|
val commit:
|
|
|
|
time:Time.t ->
|
|
|
|
message:string ->
|
2017-07-17 17:59:09 +04:00
|
|
|
context ->
|
|
|
|
commit Lwt.t
|
|
|
|
val set_head: index -> Net_id.t -> commit -> unit Lwt.t
|
|
|
|
val set_master: index -> commit -> unit Lwt.t
|
2016-09-08 21:13:10 +04:00
|
|
|
|
|
|
|
(** {2 Predefined Fields} ****************************************************)
|
|
|
|
|
2017-02-24 20:17:53 +04:00
|
|
|
val get_protocol: context -> Protocol_hash.t Lwt.t
|
|
|
|
val set_protocol: context -> Protocol_hash.t -> context Lwt.t
|
2016-09-08 21:13:10 +04:00
|
|
|
|
2017-04-10 23:14:17 +04:00
|
|
|
type test_network =
|
|
|
|
| Not_running
|
|
|
|
| Forking of {
|
|
|
|
protocol: Protocol_hash.t ;
|
|
|
|
expiration: Time.t ;
|
|
|
|
}
|
|
|
|
| Running of {
|
|
|
|
net_id: Net_id.t ;
|
|
|
|
genesis: Block_hash.t ;
|
|
|
|
protocol: Protocol_hash.t ;
|
|
|
|
expiration: Time.t ;
|
|
|
|
}
|
|
|
|
|
|
|
|
val test_network_encoding: test_network Data_encoding.t
|
|
|
|
|
|
|
|
val get_test_network: context -> test_network Lwt.t
|
|
|
|
val set_test_network: context -> test_network -> context Lwt.t
|
2017-02-24 20:17:53 +04:00
|
|
|
val del_test_network: context -> context Lwt.t
|
2016-09-08 21:13:10 +04:00
|
|
|
|
2017-04-10 23:14:17 +04:00
|
|
|
val reset_test_network: context -> Block_hash.t -> Time.t -> context Lwt.t
|
2016-09-08 21:13:10 +04:00
|
|
|
|
2017-04-10 23:14:17 +04:00
|
|
|
val fork_test_network:
|
|
|
|
context -> protocol:Protocol_hash.t -> expiration:Time.t -> context Lwt.t
|
2017-07-17 17:59:09 +04:00
|
|
|
val clear_test_network: index -> Net_id.t -> unit Lwt.t
|