swh:1:snp:9c27352633c4639a943e316050a7b904f57900e2

sort by:
Revision Author Date Message Commit Date
55d1a6c 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 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 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 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 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 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 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 Client: Add client 'call' command aliasing 'transfer 0' This is not a patch for the protocol. 21 October 2019, 12:25:13 UTC
7839bd6 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Client: Michelson fix annotation handling in CADDADR 21 October 2019, 12:24:29 UTC
c439b15 Client: use built-in return operators 21 October 2019, 12:24:27 UTC
3a3e66a Scripts: add yes-node to activate_protocol.sh 21 October 2019, 12:24:24 UTC
74e9c62 Proto: fix many odoc errors 21 October 2019, 12:12:50 UTC
bfe53e5 Bin_node: allow various configuration files in data dir 17 October 2019, 16:23:53 UTC
ca6c044 Bin_node: move default file name definitions 17 October 2019, 14:57:02 UTC
65d45af Node: improve node_data_version Includes documentation and Lwt-ization of system functions. 17 October 2019, 14:57:01 UTC
b6ca30c Bin_node: bugfix version checking 17 October 2019, 14:57:01 UTC
f0d619a 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 Sandbox: use mini-network from library 17 October 2019, 14:49:06 UTC
77baba0 Ledger: improve Wallet tests 17 October 2019, 14:49:06 UTC
025789b Ledger: support Babylon for Baking tests 17 October 2019, 14:49:06 UTC
d0ebf96 Sandbox: make voting test protocol independent 17 October 2019, 14:49:06 UTC
a9c5d3a Sandbox: make accusations test protocol independent 17 October 2019, 14:49:06 UTC
a2fbda7 Vendors: update `flextesa-lib` 17 October 2019, 14:49:06 UTC
b543900 Doc/Michelson: various fixes 17 October 2019, 12:50:58 UTC
991dbac Everywhere: use standard flags, remove unused variables and dead code accordingly 16 October 2019, 14:07:31 UTC
9a9c868 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 Bin_node: update data_version (from 0.0.3 to 0.0.4) 15 October 2019, 08:14:39 UTC
4c1c491 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 Doc: fix 005_PsBABY5H.rst compilation 15 October 2019, 03:37:21 UTC
0acc434 stdlib,shell,storage: fix doc strings 14 October 2019, 08:51:39 UTC
ddfa5b8 sandbox: remove extra / in paths 11 October 2019, 11:09:09 UTC
bc36bcb Tests: make tests framework use multiprocess 09 October 2019, 14:25:16 UTC
0d20d9a Shell: clean up deadcode 09 October 2019, 14:25:16 UTC
ef08ed9 Shell: make the external validator process dynlink next protocols 09 October 2019, 14:25:16 UTC
98aedc7 Shell: allow sandbox mode with external validator 09 October 2019, 14:25:16 UTC
b2413f1 [Delete context and store folder] Update october-2019.rst 09 October 2019, 12:03:42 UTC
7e3072d CI: Keep the docs built with GitLab CI for a day 09 October 2019, 11:32:30 UTC
34a441a Stdlib: fix typo in exported function name 09 October 2019, 09:34:46 UTC
8393d80 Base, Clic, Shell, Stdlib, etc.: fix typos in mlis 09 October 2019, 09:34:46 UTC
0edec98 Doc: add october-2019 to table of contents 09 October 2019, 09:19:30 UTC
17f9b74 Option: improve docstrings 07 October 2019, 15:35:04 UTC
cc821ea Fix trailing star in odoc 07 October 2019, 15:35:04 UTC
19e0978 e.g -> e.g. 07 October 2019, 15:35:04 UTC
aef7c08 update the command: ./alphanet.sh upgrade to ./alphanet/sh node upgrade (same with mainnet) 06 October 2019, 00:50:55 UTC
f606ec9 Tezos-version: new attempt to say depends upon everything 04 October 2019, 14:32:45 UTC
b4b6ed3 CI: update ci 04 October 2019, 12:44:16 UTC
9733208 Version: ensure hash update 04 October 2019, 06:49:25 UTC
30c26da Glossary: links Merge request: https://gitlab.com/tezos/tezos/merge_requests/1309 03 October 2019, 14:28:43 UTC
342ac30 Doc: fix some typos Merge request: https://gitlab.com/tezos/tezos/merge_requests/1308 03 October 2019, 14:20:10 UTC
fa7e2b7 Encoding: reduce initial binary writer buffer size 03 October 2019, 13:18:00 UTC
4a4c872 Tests: adapt to the new more deterministic pow mining 03 October 2019, 13:18:00 UTC
37604b9 POW: counter instead of rand 03 October 2019, 13:18:00 UTC
38ac52f Doc: add docs/releases/october-2019.rst 03 October 2019, 13:00:25 UTC
3347b10 Binaries: when exiting via a handled signal, exit with 0 03 October 2019, 12:16:50 UTC
8a573cf All binaries: use Lwt_exit to watch for termination promise 03 October 2019, 01:00:33 UTC
28e81cb Client_commands: yield in gen loop 03 October 2019, 00:42:50 UTC
10c9560 Add michelson syntax highlighting in docs See 'How to use Tezos' and 'Michelson: ...' page for an example. 02 October 2019, 15:44:19 UTC
bdd378d P2p: unban also ungreylists peer/address Make the operation coherent with the fact that is_banned is in fact is_banned or is_greylisted 02 October 2019, 11:26:46 UTC
8eaa5e8 Error monad: add a pretty printer to Canceled and Timeout 02 October 2019, 11:26:43 UTC
3f35e43 Makefile: fix 'clean' target 02 October 2019, 10:32:29 UTC
ec11ca6 Blake2: remove dependency to bigstring in .opam 01 October 2019, 09:17:00 UTC
9e45137 Blake2: replace bigarrays by bytes Co-authored-by: Mehdi Bouaziz <mehdi.bouaziz@nomadic-labs.com> 30 September 2019, 16:25:24 UTC
cc33690 Everywhere: avoid useless operations Bytes.concat 30 September 2019, 16:25:24 UTC
e1508dc validator: remove MBytes and useless conversions 30 September 2019, 16:25:24 UTC
fb3683c Validator: fix lint-test in `dune` file 30 September 2019, 13:52:56 UTC
9a189e0 storage: set hash size to 30 Quoting samoht: "That constant is used to partition the hash space into smaller sets to speed up searches -- with the current constant (60) that could lead to huge sets. With 30 most of the time these sets can only be stored on 1 page." 30 September 2019, 08:33:54 UTC
de5c80b Shell: Remove hardcoded testchain ttl 27 September 2019, 09:24:13 UTC
9466f85 Baker: use preserved_cycles instead of hard-coded constant 26 September 2019, 14:31:29 UTC
b5a0ee9 add 005 migration docs 26 September 2019, 08:00:26 UTC
1db34e4 Version: fix .gitattributes 25 September 2019, 10:17:01 UTC
aa0252e ci: really push new docker images 24 September 2019, 14:09:52 UTC
40e3734 Dependencies: Refresh hash of ocaml/opam-repository used 23 September 2019, 10:02:23 UTC
back to top