9559e5f | Raphaël Cauderlier | 17 September 2019, 15:00:55 UTC | Protocol/Michelson: Fix the computation of the big_map flag on type construtors | 21 October 2019, 12:44:03 UTC |
b660099 | Raphaël Cauderlier | 17 September 2019, 14:58:38 UTC | Tests: Add a failing test for big_maps | 21 October 2019, 12:44:02 UTC |
6c29c19 | Benjamin Canou | 01 August 2019, 12:49:09 UTC | Proto: update the tags of manager operations | 21 October 2019, 12:44:00 UTC |
9cc43ae | Benjamin Canou | 31 July 2019, 12:42:13 UTC | Proto: use only one size byte for entrypoint name | 21 October 2019, 12:43:59 UTC |
e95009e | Benjamin Canou | 31 July 2019, 12:41:42 UTC | Proto: update the fitness format for Emmy+ | 21 October 2019, 12:43:58 UTC |
74952c4 | Benjamin Canou | 18 June 2019, 14:36:20 UTC | Docs: synchronise Michelson specification - Updates the documentation of `big_map`s. - Adds a short documentation of entrypoints. - Adds the chain_id type and the `CHAIN_ID` instruction - Adds `COMPARE` variants. - Adds documentation for `APPLY`. | 21 October 2019, 12:43:56 UTC |
74f982d | Benjamin Canou | 23 July 2019, 15:52:42 UTC | Tests/Bash: adapt to the new protocol | 21 October 2019, 12:40:50 UTC |
bdc1eff | Benjamin Canou | 23 July 2019, 14:55:39 UTC | Tests/Contracts: update Michelson test contracts and bash tests - Update tests for the new semantics of CREATE_CONTRACT. - Adds tests for DIG, DUG, DROP and DIP. - Test the new CHAIN_ID instruction. - Test the new APPLY instruction. | 21 October 2019, 12:40:48 UTC |
f42e51e | Benjamin Canou | 23 July 2019, 14:57:53 UTC | Tests/Python: update Python tests - Add all constants to parameters. - Adapt the tests to the new constants and semantics. - Adapt for minimum proposal quorum. - Adapt test_multinode_snapshot to Emmy+. - Adapt to Michelson lightweight multiple entrypoints | 21 October 2019, 12:40:34 UTC |
c80e102 | Benjamin Canou | 23 July 2019, 16:18:27 UTC | Tests/OCaml: Adapt to the new protocol - Add test to quorum caps. - Adapt tests to the new endorsement semantics. - Adapt tests for delegatable implicit accounts. - Add tests for minimum proposal quorum. - Adapt tests for lightweight multiple entrypoints. - Adapt tests for disabled storage of values of type contract t | 21 October 2019, 12:25:37 UTC |
6ec45a6 | Tomáš Zemanovič | 05 June 2019, 09:13:18 UTC | Parameters: add constants for Emmy+, proposal_quorum and quorum caps This is not a patch for the protocol. It does not affect the hash, but it adds the new constants for Emmy+, proposal quorum and quorum caps to the parameters used to bootstrap a protocol in tests or test-nets. | 21 October 2019, 12:25:36 UTC |
974da48 | Raphaël Cauderlier | 23 July 2019, 12:10:04 UTC | Proto/Michelson: Deprecate instruction STEPS_TO_QUOTA The semantics of the STEPS_TO_QUOTA instruction changes each time the gas constants are modified to better reflect the real costs. Moreover, because of STEPS_TO_QUOTA, the interpreter is not monotonic: it is easy to write a contract that runs successfully at some gas amount but fails when more gas is given. | 21 October 2019, 12:25:35 UTC |
22d2fa7 | Ilias Garnier | 22 July 2019, 09:44:39 UTC | Proto/Michelson: expose internal function of the Michelson interpreter This patch is a refactor that does not change the semantics. It will allow external tools such as steppers or debuggers to control more finely the Michelson interpreter from outside the protocol. | 21 October 2019, 12:25:34 UTC |
2a3e4a3 | Galfour | 07 May 2019, 15:32:48 UTC | Proto/Michelson: add `APPLY` instruction to partially apply a lambda This instruction applies a tuplified function from the stack. Such a lambda is storable, and thus values that cannot be stored (values of type `operation`, `contract _` and `big_map _ _`) cannot be captured by `APPLY` (cannot appear in ``'a``). | 21 October 2019, 12:25:33 UTC |
c4872e3 | Benjamin Canou | 25 July 2019, 12:01:09 UTC | Client: adapt to relaxed big_map restrictions This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:32 UTC |
6f106df | Benjamin Canou | 02 July 2019, 22:00:29 UTC | Proto/Michelson: relax big_map restrictions A contract can now have more than one big_map, they can be placed anywhere in the storage. Big maps can be transferred from a contract to another, either as parameter (transactions) or storage (originations). In this case, they are morally duplicated (as opposed to shared) from the contract point of view. In the implementation, sharing happens. Big maps can be created with `EMPTY_BIG_MAP t` and cleared on the fly. The big_map type still cannot appear as argument of big_map, PUSH or UNPACK. When you duplicate a big map, you are charged with the full storage cost. This patch moves the big maps outside of the contracts in the context, in their own prefix path and indexed by integers. Big_map literals in Michelson expressions are now either the same as maps or their integer index. A temporary zone is introduced, necessary to make sure that big_maps are not spuriously cleared or left dangling during big_map transfers in internal operations. These are represented by negative indexes, and don't persist. | 21 October 2019, 12:25:31 UTC |
e722e9b | Ilias Garnier | 02 July 2019, 14:49:10 UTC | Proto/Michelson: new gas costs The cost functions in Michelson_v1_gas were to a large extent automatically generated. Please refer to meta_model.ml The (abstract) cost model makes large use of floating-point coefficient. These were converted to either integer multiplication/divisions or to statically generated fixed-point computations. | 21 October 2019, 12:25:30 UTC |
daea8ab | Ilias Garnier | 21 June 2019, 12:47:37 UTC | Proto/Michelson: finer-grained cost accounting for the interpreter I. Rescaling step cost - Rescale step_cost by 2^7 to allow finer cost accounting in the interpeter. - Expose new function atomic_step_cost exposing finer resolution step increments. II. Provide facilities for interpreter-specific cost accounting Introduce new functions `Gas.incr_interpreter_cost` and `Gas.bill_interpreter_cost`. - The context stores a new counter 'interpreter_cost' of type Gas_limit_repr.cost - functions are provided to: - increment this counter (incr_interpreter_cost) and - bill for the gas corresponding to this counter and reset this counter. Until bill_interpreter_cost is called, the interpreter_cost is _not_ taken into account into the effectively consumed gas. - Each call to incr_interpreter_cost still checks that we are under the operation and block gas limits. - The interpreter uses these functions instead of the usual Gas.consume. The invariant that has to be respected for this to be transparent to the rest of the protocol is that all continuations of the `step` function to other functions should bill and reset the interpreter_cost beforehand. This concerns calls to interp, calls to the typechecker, calls to read from a big map, calls to the serialization/deserialization mechanism, etc; in short, all calls to other parts of the protocol should have a context in a state where this fine-grained gas bookkeeping has been settled and reset. | 21 October 2019, 12:25:27 UTC |
c5bda6c | Ilias Garnier | 25 June 2019, 06:51:51 UTC | Proto/Michelson: add comparable_ty type witness in boxed sets Some cost functions require computing the size of keys/elts of maps/sets. Not being able to dispatch on the element type was making this impossible outside of the interpreter (where the element type of the set could be accessed elsewhere). This patch fixes that. | 21 October 2019, 12:25:27 UTC |
b2ad6e4 | Ilias Garnier | 19 July 2019, 09:14:17 UTC | Proto/Michelson: unshare cost functions of the interpeter & the rest of the protocol This patch is a refactor to prepare for the gas costs rehaul. It dissociates the gas consumed by the interpreter, which is the part that is updated according to thorough benchmarking, from other source of gas consumption in the protocol (typechecking, serialization etc.) which are left untouched in this update. | 21 October 2019, 12:25:26 UTC |
4487f84 | Benjamin Canou | 18 July 2019, 12:51:39 UTC | Proto/Michelson: extend comparison to linear pair structures Michelson's `COMPARE` instruction can currently only compare simple values (`string`s, `int`s, etc.). This limitation also applies to `set`, `map` and `big_map` indexes. This is an issue in particular for `big_map`s that cannot be nested, because it prevents indexing data by a pair of indexes, such as a `key_hash` and a `string`. This patch lifts that restriction, allowing to compare `pair`s of values, as long as their left component remains a simple value, impicitly making comparable values right combs whose leaves are simple values. The ordering is naturally lexicographic. This patch also refactors a bit the comparison code to simplify it and reduce code duplication. | 21 October 2019, 12:25:25 UTC |
5f92df5 | Raphaël Proust | 27 June 2019, 00:19:25 UTC | Proto/Michelson: comparisons return -1, 0, or 1, as per the documentation The Michelson documentation states that `COMPARE` pushes -1 (resp. 1) if the top element of the stack is smaller (resp. greater) than the second. However, the implementation can actually push a negative number instead of -1 and a positive number instead of 1 depending on the type and values. This semantics should not break any code as the result of `COMPARE` is almost always comsumed by comparison projectors such as `GT` or `LT` who only care about the sign. However, for the sake of consistency, this patches makes `COMPARE` return only -1, 0 or 1. This fixes issue #546 | 21 October 2019, 12:25:24 UTC |
36fbc8d | Tomáš Zemanovič | 11 July 2019, 15:35:46 UTC | Proto/Michelson: add special encoding for `do` and `set/remove_delegate` entrypoints This patch optimises the binary representation of transactions to usual entrypoints. The `do` entrypoint is used by manager.tz script and the `set_delegate` and `remove_delegate` by spendable script transformation. | 21 October 2019, 12:25:23 UTC |
55d1a6c | Tomáš Zemanovič | 14 May 2019, 14:48:56 UTC | Client: update to the new tz1/KT1 policy This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:20 UTC |
071d5eb | Tomáš Zemanovič | 09 May 2019, 14:34:42 UTC | Proto: all KT1s must now be scripted Contains BREAKING CHANGES (see end of message). It removes the manager, spendable and delegatable flags and counter from all KT1s. It deprecates CREATE_ACCOUNT from use in new contracts, as well as the manager, spendable and delegatable arguments from CREATE_CONTRACT. Already deployed contracts with deprecated instructions will continue to work by using legacy support scripts (deploying `manager.tz` for `CREATE_ACCOUNT` and adding entrypoints for `CREATE_CONTRACT`). This change will impact all users of the RPC API as well as anyone who forges operations. The source of manager operations is now a tz1, tz2 or tz3, and no longer a KT1. The manager field and the spendable and delegatable flags disappear from the origination operation format (JSON and binary) as well as everywhere in the RPC API. | 21 October 2019, 12:25:19 UTC |
daceb8b | Benjamin Canou | 23 July 2019, 14:45:36 UTC | Proto/Michelson: handle default entrypoint originated before migration This patch preserves the semantics of `CREATE_CONTRACT` instructions for contracts deployed before the migration that deploy a contract with a default entrypoint. This is done by adding a `%root` entrypoint as detailed in a previous patch. | 21 October 2019, 12:25:18 UTC |
f06c6a3 | Benjamin Canou | 17 July 2019, 14:11:11 UTC | Proto: add code stubs to handle `%default` entrypoints originated before migration This code stub adds a `%root` entrypoint to contracts that have a default entrypoint, and rewrite their calls to `SELF` into `SELF %root`. This is used to preserve the typing of `SELF` within contracts with deployed before the migration that have a `%default` entrypoint. | 21 October 2019, 12:25:17 UTC |
bff82e0 | Raphaël Cauderlier | 17 June 2019, 17:28:53 UTC | Client: add a chain_id parameter to RPCs and update the multisig support This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:16 UTC |
530ca59 | Raphaël Cauderlier | 17 June 2019, 17:28:53 UTC | Proto/Michelson: Add CHAIN_ID and chain_id Add an abstract type and an instruction to obtain the chain id from Michelson code. This is to implement replay protection between the main chain and the test chain spawned in phase 3 of the voting procedure. | 21 October 2019, 12:25:15 UTC |
d92e04e | Tomáš Zemanovič | 14 June 2019, 10:39:26 UTC | Proto: add Michelson code stubs to replicate manager operations on KT1s Spendable, scriptless contracts are simulated by the 'manager.tz' script, which replaces their functionality. It allows for the contract's manager to set and withdraw delegate, spend the contract's funds and to set a new manager, which is written into script's storage. The 'manager.tz' script's parameters have field annotations, which in combination with script entry-points allows for friendlier commands for running the script. Spendable and delegatable flags are simulated by adding entrypoints to a scripted contract. | 21 October 2019, 12:25:15 UTC |
9bdc929 | Tomáš Zemanovič | 18 June 2019, 15:16:36 UTC | Client: Add client 'call' command aliasing 'transfer 0' This is not a patch for the protocol. | 21 October 2019, 12:25:13 UTC |
7839bd6 | Tomáš Zemanovič | 14 June 2019, 14:26:49 UTC | Client: fix 'Invalid_arity' error pretty-print argument order This is not a patch for the protocol. | 21 October 2019, 12:25:12 UTC |
3f33632 | Raphaël Proust | 15 July 2019, 16:31:22 UTC | Proto: do not use parallel iterators This patch does not change the semantics. Using serial iterators (map_s) instead of parallel iterators (map_p) increases the determinism of the protocol. | 21 October 2019, 12:25:10 UTC |
8f488e9 | Benjamin Canou | 28 May 2019, 12:10:13 UTC | Client: make macros DIIIP and DUUUP use new indexed instructions This is not a patch for the protocol. It makes existing macros produce cheaper code thatnks to the new stack instructions. | 21 October 2019, 12:25:08 UTC |
01c321d | Georges Dupéron | 03 May 2019, 11:41:04 UTC | Proto/Michelson: new instructions `DIG n`, `DUG n`, `DIP n { code }`, `DROP n` - `DIG n` : get the element at top of the n-th tail of the stack and move it to the top. `DIG 0` is a no-op. - `DUG n` : get the element at the top of the stack, and move it downwards n slots. `DUG 0` is a no-op. - `DIP n { code }` : execute code after removing the top n elements of the stack, and put these n elements back on top of the resulting stack. `DIP 0 { code }` is equivalent to `{ code }`. - `DROP n` : drop the top `n` elements of the stack. `DROP 0` is a no-op. Smart contract authors should switch to these new instructions in their developments. | 21 October 2019, 12:25:07 UTC |
351cb3e | Eugen Zalinescu | 17 January 2019, 19:46:14 UTC | Proto/Michelson: corrected error message for the contract type This is a minor fix for the Michelson typechecker to produce a better error message on some ill-typed contracts. | 21 October 2019, 12:25:06 UTC |
2ac0d97 | Vincent Botbol | 09 May 2019, 13:57:39 UTC | Proto/Michelson: modify semantics of NOW instruction The `NOW` instruction now pushes the minimal injection time on the stack for the current block/priority, instead of the actual timestamp put in the block by the baker. This is a change required by the switch to Emmy+, in which a baker could decide after having forged a block to include a late endorsement and update the timestamp to an earlier point. With the current semantics of `NOW`, this would mean reevaluating all operations to make sure they are still valid everytime such a change is decided. This patch prevents that issue by fixing the timestamp seen by Michelson independently of the number of endorsements. | 21 October 2019, 12:25:05 UTC |
7354c78 | Benjamin Canou | 05 July 2019, 13:30:48 UTC | Proto/Michelson: annotation semantics fixes Contains a BREAKING CHANGE (see end of message). Some instructions were missing consistency checks on the annotations of their arguments. For instance, it was possible to `CONS` a value of type `unit :A` on a `list (unit :B)`. Smart contracts already deployed before the migration will continue to work even if they present such issues. However, smart contract authors should already make sure that their annotations are consistent by using the new typechecker in a sandbox. This is even more recommended for contracts deployed before the migration that use the `CREATE_CONTRACT` instruction. If the code they deploy is ill-annotated according to the new stricter rule, these contracts will produce failing operations after the migration. | 21 October 2019, 12:25:04 UTC |
7d646d5 | Benjamin Canou | 24 June 2019, 15:58:37 UTC | Proto/Michelson: do not allow annotations inside data anymore Some Michelson values could bear type annotations. These were inconsistent and unspecified. Annotations inside data can now only appear inside lambdas. | 21 October 2019, 12:25:03 UTC |
6d10af1 | Benjamin Canou | 10 July 2019, 09:44:59 UTC | Proto/Michelson: option cannot bear field annotations anymore Contains a BREAKING CHANGE (see end of message). Field annotations on `option` types were inconsistent with other field annotations on other types, interfering with field annotations on their parent type, and the implementation was buggy. Smart contract authors should stop putting field annotations on their option types, or their contract will not be deployable after the migration. It is enough to erase the annotations. | 21 October 2019, 12:25:02 UTC |
ba21c64 | Benjamin Canou | 10 July 2019, 09:41:34 UTC | Client: adapt to Michelson lightweight multiple entrypoints This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:25:01 UTC |
810d0b3 | Julien Tesson | 23 July 2019, 17:06:05 UTC | Proto/Michelson: add services to list entrypoints This patchs adds four new URIs. - `/helpers/entrypoint_type` - `/helpers/list_entrypoints` - `/contracts/index/<KT1>/entrypoints/` - `/contracts/index/<KT1>/entrypoints/<name>` | 21 October 2019, 12:24:59 UTC |
296aec5 | Benjamin Canou | 10 July 2019, 10:15:51 UTC | Proto/Michelson: add lightweight multiple entrypoints Contains a BREAKING CHANGE (see end of message). This patch implements a way for a transaction to target a specific code path of a smart contract using a name. The implementation is piggy baking on Michelson's or type and field annotations. To take advantage of the multiple entrypoint feature, the parameter type of a contract must have at its toplevel a tree of `or` types. At each branching point in this tree, a field annotation (the ones with a %) can appear, providing the name of the entrypoint. Transactions now have to specify an entrypoint name. When a transaction is executed, the appropriate `Left` and `Right` constructors are automatically added to the value that is pushed onto the input stack, depending on the position of the entrypoint in the parameter type tree. This way, two contracts who share an entrypoint of the same type under the same name can be called exactly the same, even if the entrypoint is placed at a different point in their parameter type tree. From inside the smart contract, nothing changes. From within Michelson, this feature is also available. The `contract t` type now points to a specific entrypoint (of type `t`) of the contract. For this, the `CONTRACT` and `SELF` instructions now take an optional annotation (set to `%default` if not passed). The `TRANSFER_TOKEN` instruction will then use the entrypoint from the `contract t` value that it consumes from the stack. An exception to the semantics is made for the `%default` entrypoint : if present in the contract, it behaves as any other, however if not present, default is automatically attributed to the root of the parameter type. A special check is made at origination that there is no two entrypoints with the same name, and that if a default is present somewhere, then all entrypoints must be named, as otherwise some parts of the code would be unreachable. Smart contract developers can already use the feature, and their contracts will automatically take advantage of entrypoints after the migration. Smart contract developers should take great care when deploying contracts that use the `CREATE_CONTRACT` instruction, as this instruction will produce a failing operation after the migration if it tries to deploy a contract with ill formed entrypoints. To prevent this, contract authors should test their contract in a sandbox with the new protocol, or simply avoid hardcoding the `CREATE_CONTRACT` instruction when possible. | 21 October 2019, 12:24:58 UTC |
4f2967e | Tom Jack | 10 July 2019, 09:37:11 UTC | Client: handle disabled storing values of type contract t This is not a patch for the protocol. It does not affect the hash, but is needed for the client to work. | 21 October 2019, 12:24:46 UTC |
deeaa84 | Tom Jack | 10 July 2019, 09:35:51 UTC | Proto/Michelson: disable storing values of type `contract t` in newly originated contracts Contains a BREAKING CHANGE (see end of message). In Athens and before, Michelson contracts could store typed handles to contracts in their storage or in constants in the code. This meant that typechecking a contract required accessing other contracts from the chain context. This extra type safety was not worth the engineering cost for tooling and high level languages. Contracts will now have to store values of type `address` and use the `CONTRACT` instruction to typecheck contract references on demand. All existing contracts that used the feature will continue to work as-is. This is done by introducing a `legacy` flag througout the typechecking code, with the following trivial semantics: - everything already in the chain is considered `legacy` and can use deprecated features, - everything added to the chain (parameters of transactions and code and storage of originations cannot. Smart contract developers should adapt their code to store `address`es and use instruction `CONTRACT`. | 21 October 2019, 12:24:45 UTC |
fe3fcd5 | Tom Jack | 30 May 2019, 13:56:29 UTC | Proto/Michelson: eliminate useless storage read for parse_contract This patch removes a spurious access to the storage when typecheking a contract reference. It makes this operation cheaper in gas. | 21 October 2019, 12:24:44 UTC |
0409176 | Georges Dupéron | 17 May 2019, 15:45:02 UTC | Proto/Michelson: peephole optimization of UNPAIR This makes the often used `UNPAIR` macro cheaper in terms of gas. | 21 October 2019, 12:24:43 UTC |
914bc52 | Tomáš Zemanovič | 09 July 2019, 17:21:28 UTC | Proto: Require 5% minimum quorum of protocol proposal Contains a BREAKING CHANGE (see end of message). The protocol will now remain in the initial proposal voting phase until a protocol gets upvoted by at least 5% of the stake. Third party developers should make sure they can parse the new fields in the `/constants` RPC, or at least ignore them. | 21 October 2019, 12:24:42 UTC |
d4286ec | Adrian Brink | 27 April 2019, 12:29:26 UTC | Proto: make implicit accounts delegatable Contains BREAKING CHANGES (see end of message). Implicit accounts (tz1, tz2, tz3) can directly set their delegate. Furthermore implicit accounts have the ability to delete their delegate by sending a "delegate" transaction with an empty delegate field. This specific patch does not impact the ability for originated (KT1) accounts to set or delete their delegate. The storage type of the "Delegated" accounts changes it's index from "Contract_hash" to "Contract_repr.Index". This change in the type signature allows that both implicit and originated accounts can be stored in the set. Explorers and wallets should handle the delegation from tz1, tz2 and tz3 accounts. RPC `/context/delegates/<pkh>/delegated_contracts` (and composite RPC `/context/delegates/<pkh>/`) can now contain tz1, tz2 and tz3 addresses. | 21 October 2019, 12:24:41 UTC |
ef7d20a | Vincent Botbol | 03 May 2019, 12:07:15 UTC | Baker: adapt baker code for Emmy+ This is not a patch for the protocol. It does not affect the hash, but is needed for the baker to work. - BREAKING CHANGE: remove the await_endorsement arg as it becomes mandatory. - Implement new heuristic to wait for endorsements - Adapt local validation to match the new validation semantics. - Fix "bake for --minimal-timestamp". - Prevent the creation of block with a timestamp in the future unless --force is given. | 21 October 2019, 12:24:40 UTC |
f343c0d | Eugen Zalinescu | 07 June 2019, 12:24:55 UTC | Proto: rewards depend on block priority Contains a BREAKING CHANGE (see end of message). The baking reward is now calculated w.r.t a given priority [p] and a number [e] of included endorsements as follows: (block_reward / (p+1)) * (0.8 + 0.2 * e / endorsers_per_block) Explorers or bakers that recompute the reward by themselves should implement this new formula. Those who use the block receipts should be fine. | 21 October 2019, 12:24:39 UTC |
73795dc | Vincent Botbol | 03 May 2019, 14:19:16 UTC | Proto: freeze endorsement deposits at operation application In Athens and before, endorsement deposits where taken at the end of the block validation, after the transactions, including transaction from the endorsers' accounts. This made things more difficult for the baker, and led to a few mishaps in the past. This patch changes that behaviour, so that endorsement deposits are taken before transactions are evaluated. | 21 October 2019, 12:24:38 UTC |
3ed6c3a | Pierre Chambart | 10 May 2019, 19:58:07 UTC | Proto: add RPCs to query the required endorsement constraints This patch adds the necessary RPCs to implement the baker for Emmy+. Developers of analytics tools or explorers may also want to use these new RPCs. | 21 October 2019, 12:24:36 UTC |
71ac6bb | Pierre Chambart | 10 May 2019, 14:54:33 UTC | Proto: add a minimum number of endorsements requirement, a.k.a Emmy+ Contains a BREAKING CHANGE (see end of message). A block is now valid only if its timestamp has a minimal delay with respect to the previous block's timestamp, and this minimal delay depends not only on the block's priority but also on the number of endorsement operations included in the block. In Emmy+, blocks' fitness increases by one unit with each level. In this way, Emmy+ simplifies the optimal baking strategy: The bakers used to have to choose whether to wait for more endorsements to include in their block, or to publish the block immediately, without waiting. The incentive for including more endorsements was to increase the fitness and win against unknown blocks. However, when a block was produced too late in the priority period, there was the risk that the block did not reach endorsers before the block of next priority. In Emmy+, the baker does not need to take such a decision, because the baker cannot publish a block too early. Third party developers should make sure they can parse the new fields in the `/constants` RPC, or at least ignore them. | 21 October 2019, 12:24:35 UTC |
bb2ea62 | Adrian Brink | 09 May 2019, 15:57:49 UTC | Proto: participation EMA and min/max quorum caps Contains a BREAKING CHANGE (see end of message). Change the formula from quorum update on vote period to participation EMA (exponential moving average). Current quorum storage is removed and new storage participation EMA is introduced. Minimum and maximum quorum caps are added to the constants of the economic protocol. Whenever a voting period would cause the quorum to go below or above the caps it will be bound to the limit defined in the constants. In the future token holders can easily modify the caps by changing the constants. Third party developers should make sure they can parse the new fields in the `/constants` RPC, or at least ignore them. | 21 October 2019, 12:24:34 UTC |
fa294d6 | Marco Stronati | 16 April 2019, 20:25:15 UTC | Proto: remove default constants store all constants in the context This patch does not change the semantics. It changes the way protocol parameters (such as the block delay or the gas limit) are provided at protocol activation and stored in the context. Previously they were using an optional scheme, which allowed to launch a test network with the default mainnet constants, only specifying the updated ones. This feature led to confusion and several mishaps on the test networks, so it was decided that the parameters should now be provided exhaustively in the activation block of test networks or sandboxes. | 21 October 2019, 12:24:33 UTC |
93cf772 | Benjamin Canou | 03 July 2019, 12:44:50 UTC | Proto: allow storage functors to not register in the JSON storage RPC This patch does not change the semantics. It allows to hide some fields from the `/raw/context` access RPCs. This feature is used in later migration patches, to hide (re)moved fields after the migration. | 21 October 2019, 12:24:32 UTC |
4904756 | Marco Stronati | 16 April 2019, 20:32:21 UTC | Proto: remove unused register_resolvers function This patch does not change the semantics. It removes a vestigial accessory feature to provide completion of addresses from prefixes. This is a job for indexers and has nothing to do in the protocol. | 21 October 2019, 12:24:31 UTC |
e0e0947 | Raphaël Proust | 20 June 2019, 12:52:50 UTC | Proto: handle non-singleton traces This patch does not change the semantics. It is a minor refactory that uses a better pattern for error recovery in order to prevent future mistakes. | 21 October 2019, 12:24:30 UTC |
83c5e5e | Benjamin Canou | 25 June 2019, 09:56:40 UTC | Client: Michelson fix annotation handling in CADDADR | 21 October 2019, 12:24:29 UTC |
c439b15 | Raphaël Proust | 06 May 2019, 08:15:50 UTC | Client: use built-in return operators | 21 October 2019, 12:24:27 UTC |
3a3e66a | Marco Stronati | 20 June 2019, 17:36:04 UTC | Scripts: add yes-node to activate_protocol.sh | 21 October 2019, 12:24:24 UTC |
74e9c62 | Marco Stronati | 05 June 2019, 08:22:47 UTC | Proto: fix many odoc errors | 21 October 2019, 12:12:50 UTC |
bfe53e5 | Victor Allombert | 17 October 2019, 14:48:50 UTC | Bin_node: allow various configuration files in data dir | 17 October 2019, 16:23:53 UTC |
ca6c044 | Victor Allombert | 17 October 2019, 12:29:48 UTC | Bin_node: move default file name definitions | 17 October 2019, 14:57:02 UTC |
65d45af | Raphaël Proust | 15 October 2019, 04:12:41 UTC | Node: improve node_data_version Includes documentation and Lwt-ization of system functions. | 17 October 2019, 14:57:01 UTC |
b6ca30c | Raphaël Proust | 15 October 2019, 04:12:41 UTC | Bin_node: bugfix version checking | 17 October 2019, 14:57:01 UTC |
f0d619a | Matthew Bauer | 20 September 2019, 18:39:31 UTC | Ledger: update tests to app versions 2.2.0 - See also https://github.com/obsidiansystems/ledger-app-tezos/pull/82. - Show values for origination tests that the apps can parse. - Update display to match ledger output. | 17 October 2019, 14:49:06 UTC |
bfd7721 | Sebastien Mondet | 18 September 2019, 18:01:30 UTC | Sandbox: use mini-network from library | 17 October 2019, 14:49:06 UTC |
77baba0 | Sebastien Mondet | 20 September 2019, 20:38:56 UTC | Ledger: improve Wallet tests | 17 October 2019, 14:49:06 UTC |
025789b | Elliot Cameron | 20 September 2019, 20:36:28 UTC | Ledger: support Babylon for Baking tests | 17 October 2019, 14:49:06 UTC |
d0ebf96 | Sebastien Mondet | 20 September 2019, 20:33:00 UTC | Sandbox: make voting test protocol independent | 17 October 2019, 14:49:06 UTC |
a9c5d3a | Sebastien Mondet | 20 September 2019, 20:28:22 UTC | Sandbox: make accusations test protocol independent | 17 October 2019, 14:49:06 UTC |
a2fbda7 | Sebastien Mondet | 20 September 2019, 18:25:49 UTC | Vendors: update `flextesa-lib` | 17 October 2019, 14:49:06 UTC |
b543900 | Raphaël Cauderlier | 17 October 2019, 12:50:58 UTC | Doc/Michelson: various fixes | 17 October 2019, 12:50:58 UTC |
991dbac | p | 16 October 2019, 14:07:31 UTC | Everywhere: use standard flags, remove unused variables and dead code accordingly | 16 October 2019, 14:07:31 UTC |
9a9c868 | Thomas Gazagnaire | 10 October 2019, 16:54:30 UTC | irmin: update to latest version - [index] better documention - [irmin] no allocation in Irmin.Type.decode_bin for fixed-size strings - [index] use a global buffer to decode entries during the search - [irmin] remove ephemerons in Irmin.Tree | 15 October 2019, 13:44:40 UTC |
ce3f17c | Victor Allombert | 09 October 2019, 13:57:34 UTC | Bin_node: update data_version (from 0.0.3 to 0.0.4) | 15 October 2019, 08:14:39 UTC |
4c1c491 | Victor Allombert | 02 October 2019, 12:47:19 UTC | Storage: forward error message on b58 read failure Co-authored-by: Raphaël Proust <code@bnwr.net> | 15 October 2019, 08:14:39 UTC |
2537a74 | Pietro Abate | 02 October 2019, 17:31:35 UTC | Doc: fix 005_PsBABY5H.rst compilation | 15 October 2019, 03:37:21 UTC |
0acc434 | Pietro Abate | 18 September 2019, 11:31:47 UTC | stdlib,shell,storage: fix doc strings | 14 October 2019, 08:51:39 UTC |
ddfa5b8 | Mehdi Bouaziz | 06 September 2019, 11:32:39 UTC | sandbox: remove extra / in paths | 11 October 2019, 11:09:09 UTC |
bc36bcb | vbot | 25 September 2019, 17:00:53 UTC | Tests: make tests framework use multiprocess | 09 October 2019, 14:25:16 UTC |
0d20d9a | vbot | 30 September 2019, 12:50:10 UTC | Shell: clean up deadcode | 09 October 2019, 14:25:16 UTC |
ef08ed9 | vbot | 30 September 2019, 12:48:52 UTC | Shell: make the external validator process dynlink next protocols | 09 October 2019, 14:25:16 UTC |
98aedc7 | vbot | 25 September 2019, 16:57:21 UTC | Shell: allow sandbox mode with external validator | 09 October 2019, 14:25:16 UTC |
b2413f1 | Blindripper | 09 October 2019, 12:03:42 UTC | [Delete context and store folder] Update october-2019.rst | 09 October 2019, 12:03:42 UTC |
7e3072d | Sebastien Mondet | 03 October 2019, 18:48:26 UTC | CI: Keep the docs built with GitLab CI for a day | 09 October 2019, 11:32:30 UTC |
34a441a | Raphaël Proust | 06 October 2019, 04:35:44 UTC | Stdlib: fix typo in exported function name | 09 October 2019, 09:34:46 UTC |
8393d80 | Raphaël Proust | 06 October 2019, 04:31:33 UTC | Base, Clic, Shell, Stdlib, etc.: fix typos in mlis | 09 October 2019, 09:34:46 UTC |
0edec98 | Romain Bardou | 07 October 2019, 08:57:33 UTC | Doc: add october-2019 to table of contents | 09 October 2019, 09:19:30 UTC |
17f9b74 | Mehdi Bouaziz | 09 September 2019, 13:13:16 UTC | Option: improve docstrings | 07 October 2019, 15:35:04 UTC |
cc821ea | Mehdi Bouaziz | 09 September 2019, 13:15:49 UTC | Fix trailing star in odoc | 07 October 2019, 15:35:04 UTC |
19e0978 | Mehdi Bouaziz | 05 September 2019, 16:07:09 UTC | e.g -> e.g. | 07 October 2019, 15:35:04 UTC |
aef7c08 | Lý Kim Quyên | 01 October 2019, 11:40:51 UTC | update the command: ./alphanet.sh upgrade to ./alphanet/sh node upgrade (same with mainnet) | 06 October 2019, 00:50:55 UTC |
f606ec9 | Pierre Boutillier | 04 October 2019, 14:32:45 UTC | Tezos-version: new attempt to say depends upon everything | 04 October 2019, 14:32:45 UTC |
b4b6ed3 | vbot | 04 October 2019, 12:44:16 UTC | CI: update ci | 04 October 2019, 12:44:16 UTC |
9733208 | vbot | 30 September 2019, 09:08:35 UTC | Version: ensure hash update | 04 October 2019, 06:49:25 UTC |
30c26da | Mehdi Bouaziz | 09 September 2019, 12:46:01 UTC | Glossary: links Merge request: https://gitlab.com/tezos/tezos/merge_requests/1309 | 03 October 2019, 14:28:43 UTC |
342ac30 | Mehdi Bouaziz | 05 September 2019, 16:07:09 UTC | Doc: fix some typos Merge request: https://gitlab.com/tezos/tezos/merge_requests/1308 | 03 October 2019, 14:20:10 UTC |