Commit Graph

1662 Commits

Author SHA1 Message Date
vsmk98 7ad1fb4ac9 permissions: code clean up. Removed unwanted code. 2019-04-03 12:21:30 +08:00
vsmk98 0af4d28825 permissions: Fixed contract issue for status update approval. Fixed api.go for passing right variables. 2019-04-03 10:13:05 +08:00
amalraj.manigmail.com bc61ff23f5 Merge remote-tracking branch 'quoeng/feature/permissioning-1.8.18' into feature/permissioning-1.8.18
# Conflicts:
#	controls/permission/permission.go
2019-04-01 18:23:52 +08:00
amalraj.manigmail.com 5836df7d8c permission: add web3api calls 2019-04-01 18:22:41 +08:00
vsmk98 eb2fce1f53 permissions: combined all org related event monitoring to a single go-routine. Removed unnecessary error handling. Code clean up. 2019-04-01 17:48:37 +08:00
vsmk98 65a0216609 permissions: changed the permissions config struct to have address instead of string. Updated error handling. 2019-04-01 14:33:44 +08:00
amalraj.manigmail.com fd295384f2 permission: handle node pending approval, org pending approval
fix remove role and update node status
2019-03-29 17:49:46 +08:00
amalraj.manigmail.com e6c8e64c35 permission: modify account validation to refer the cache 2019-03-29 14:50:38 +08:00
amalraj.manigmail.com 293370cb94 permission: modify event handling 2019-03-29 12:28:32 +08:00
Jim Zhang a0c5a63e51 Added an Info log when skipping incorrectly signed txs; cleaned up debug logging 2019-03-28 12:17:16 -04:00
Jim Zhang ff94ad50a0 Check for Sender() return errors before using the resolved sender address, to account for sending EIP155 externally signed txs before the EIP155 block 2019-03-28 12:01:29 -04:00
amalraj.manigmail.com 00c96e2bab integrate permission contracts with geth - update cache from contract and events 2019-03-28 18:59:30 +08:00
amalraj.manigmail.com a98971370c integrate permission contracts with geth - handle mux locks for cache 2019-03-28 11:01:33 +08:00
amalraj.manigmail.com 86ecfa4864 integrate permission contracts with geth - load data from contracts when geth is started 2019-03-27 19:07:01 +08:00
amalraj.manigmail.com 3371aa0ac9 integrate permission contracts with geth - network boot from permission config.json and handle update node approved event, account added event 2019-03-26 23:20:06 +08:00
amalraj.manigmail.com 9f72c2f5a4 integrate permission contracts with geth - update node approved event 2019-03-22 19:34:15 +08:00
amalraj.manigmail.com addb836244 update bootstrapping of permission 2019-03-19 15:29:53 +08:00
amalraj.manigmail.com b286409b7a merge with quorum upstream
params: config.go and denomination.go merged with conflicts
2019-03-18 11:43:03 +08:00
amalraj.manigmail.com 849eca21da merge with quorum upstream
params: config.go and denomination.go merged with conflicts
2019-03-18 11:34:09 +08:00
amalraj.manigmail.com 5c8aecc15c code improvements 2019-03-14 14:26:17 +08:00
amalraj.manigmail.com 1b93ecfd10 read permission-config from a json file for bootstrapping 2019-03-12 11:18:20 +08:00
amalraj.manigmail.com a8c050df22 Merge remote-tracking branch 'remotes/quoeng/feature/permissioning-1.8.12' into feature/permissioning-1.8.18
# Conflicts:
#	cmd/bootnode/main.go
#	internal/web3ext/web3ext.go
#	p2p/discover/udp.go
#	p2p/discover/udp_test.go
#	p2p/permissions.go
#	p2p/server.go

poc to pass permission contract via command line
2019-03-08 17:09:24 +08:00
amalraj.manigmail.com d5e4ae7b87 Merge remote-tracking branch 'remotes/quoeng/feature/permissioning-1.8.12' into feature/permissioning-1.8.18
# Conflicts:
#	cmd/bootnode/main.go
#	internal/web3ext/web3ext.go
#	p2p/discover/udp.go
#	p2p/discover/udp_test.go
#	p2p/permissions.go
#	p2p/server.go
2019-03-08 12:53:46 +08:00
amalraj.manigmail.com 32729b9f28 remove TODO related to review 2019-02-25 16:30:54 +08:00
vsmk98 7a0c016634 Removed unnecessary if condition 2019-02-15 14:41:53 +08:00
fixanoid 0f68921124 Renaming to TransactionSizeLimit for clarity 2019-02-14 09:01:22 -05:00
amalraj.manigmail.com 6fb33c0e32 Merge remote-tracking branch 'remotes/origin/master' into AJ-geth-upgrade-1.8.18 2019-02-13 17:26:38 +08:00
vsmk98 b0cd2b5ef2 updated code comments 2019-02-13 12:31:11 +08:00
vsmk98 0b6e64f250 changes to ensure that unlock is called only after lock 2019-02-13 09:57:11 +08:00
fixanoid cca2e84c18 Transaction size limit support via genesis 2019-02-12 17:23:59 -05:00
fixanoid 918aaa83a9 Merge branch 'txn-size-limit-cli' into txn-size-limit-genesis 2019-02-12 11:45:54 -05:00
Samer Falah 07c76cc137
Merge pull request #595 from SatpalSandhu61/fix-for-bad-block-on-gas-limit
Fix for BAD BLOCK caused by "gas limit reached" for private contracts
2019-02-12 10:40:35 -05:00
vsmk98 f83b100052 refactored contract to remove all for loops 2019-02-12 16:22:15 +08:00
vsmk98 9b8906664c Removed for loops for master org and voter list update 2019-02-12 11:11:39 +08:00
vsmk98 13bccaa9c6 code changes to fix review comments 2019-02-12 09:54:13 +08:00
amalraj.manigmail.com 73667e7942 merge 1.8.18 with quorum/master
refactor raft & istanbul based on upstream changes
fix unit test cases
2019-02-08 17:29:01 +08:00
vsmk98 8673598d3b added check to allo only an account with full access rights can add voter at master org level 2019-02-08 16:29:27 +08:00
vsmk98 eaab3b004e Added check to ensure that at least one account with Full access will be there in the network 2019-02-08 14:25:35 +08:00
vsmk98 b6616a5ca4 added error messages for invalid ops 2019-02-07 15:19:25 +08:00
vsmk98 178d7629c4 added error message when a node not part of network is added is proposed for deactviation 2019-02-07 12:45:29 +08:00
vsmk98 c0d48d90d4 changed API names as per review and testing 2019-02-07 09:20:49 +08:00
vsmk98 f41e7ac83c additional fixes 2019-02-01 16:08:48 +08:00
vsmk98 13b8209d18 bug fixes based on internal testsing 2019-02-01 15:32:45 +08:00
amalraj.manigmail.com 4dbd95947d Merge branch 'goeth-1.8.18' into geth-upgrade-1.8.18
# Conflicts:
#	.github/CONTRIBUTING.md
#	.travis.yml
#	core/blockchain.go
#	core/vm/evm.go
#	core/vm/logger_test.go
#	eth/handler_test.go
#	eth/tracers/tracer_test.go
#	internal/ethapi/api.go
#	internal/web3ext/web3ext.go
#	p2p/discover/node.go
#	p2p/server.go
#	swarm/network/simulations/discovery/discovery_test.go
2019-01-29 19:08:50 +08:00
amalraj.manigmail.com bc529a509d Merge branch 'goeth-1.8.18' into geth-upgrade-1.8.18
# Conflicts:
#	.github/CONTRIBUTING.md
#	.travis.yml
#	core/blockchain.go
#	core/vm/evm.go
#	core/vm/logger_test.go
#	eth/handler_test.go
#	eth/tracers/tracer_test.go
#	internal/ethapi/api.go
#	internal/web3ext/web3ext.go
#	p2p/discover/node.go
#	p2p/server.go
#	swarm/network/simulations/discovery/discovery_test.go
2019-01-29 19:08:14 +08:00
vsmk98 925dd698e6 changes to reorder account access types 2019-01-29 14:23:30 +08:00
vsmk98 1cee5af40d merge with Zhiyao branch for cancel pending operation 2019-01-29 14:06:24 +08:00
vsmk98 70b66fb808 changes for solc compire change 0.5.3 version 2019-01-29 13:52:58 +08:00
amalraj.manigmail.com 8e30fc202a Merge remote-tracking branch 'remotes/origin/master' into geth-upgrade-1.8.18
# Conflicts:
#	consensus/ethash/consensus.go
#	eth/bloombits.go
#	params/protocol_params.go
2019-01-25 22:29:22 +08:00
amalraj.manigmail.com 2914b3c99d Merge remote-tracking branch 'remotes/origin/master' into geth-upgrade-1.8.18
# Conflicts:
#	consensus/ethash/consensus.go
#	eth/bloombits.go
#	params/protocol_params.go
2019-01-25 22:24:03 +08:00
zzy96 e854ebaabe add cancelPendingOperation api in quorumNodeMgmt 2019-01-24 14:25:44 +08:00
vsmk98 94aa2382ce Added validation to check if anything is pending approval for node approve, deactivation approve, activation approve and blacklisting approval 2019-01-18 14:20:40 +08:00
vsmk98 061c9b85ce merge with master 2019-01-14 13:53:05 +08:00
vsmk98 c31fa5cfa5 changes to set readOnlyDepth only once during the entire opCode execution 2019-01-14 11:53:33 +08:00
SatpalSandhu61 895947de48 Currently, we can't tell the reason for evm failure, so change log message for EVM failure reason from Debug to Info. This is helpful to users and makes analysis of issues much easier. 2019-01-10 13:54:38 +08:00
amalraj.manigmail.com 741fe1b33f quorun: add json camelCase name for api's output structs 2019-01-09 13:39:32 +08:00
vsmk98 b40b7ab148 added api for listing the voters for a master org 2019-01-08 17:27:13 +08:00
vsmk98 45189d42c7 minor changes to avoid package name changes of abigen output 2019-01-08 14:40:57 +08:00
Samer Falah d77cb778ca
Merge pull request #563 from Puneetha17/private_rawtx
Do not reset V value if the tx is already set to private
2019-01-07 09:22:20 -05:00
vsmk98 99e717bd1a changed api signature from key managment to org management 2019-01-07 10:23:22 +08:00
vsmk98 23e0cecdc5 contract change to add api for org listing 2018-12-13 20:58:36 +05:30
vsmk98 f5981f0c7e latest changes for cluster key management 2018-12-12 13:07:13 +05:30
Trung Nguyen 67c9b4332f
staticcall does not modify states so no need to push to stack 2018-12-11 16:54:18 -05:00
vsmk98 7903dac340 latest changes for cluster key management 2018-12-11 10:07:19 +05:30
SatpalSandhu61 50da8eaf0d Fix for issue 576 where private transactions can cause block gas limit to be exceeded, leading to BAD BLOCK. 2018-12-10 15:30:28 +00:00
SatpalSandhu61 5af110984a Fix for issue 576 where private transactions can cause block gas limit to be exceeded, leading to BAD BLOCK. 2018-12-10 09:58:16 +00:00
Michael Gu 8ca92333f3
Merge branch 'master' into photic-tx-size-limit 2018-12-05 22:53:18 +02:00
Trung Nguyen 089841e036
added dual state implementation to StaticCall 2018-12-05 13:47:01 -05:00
Samer Falah d4db92f69e
Merge pull request #570 from jbhurat/missing-logs-events
Adding private log blooms to DB in addition to public log bloom
2018-12-02 20:08:30 -05:00
amalraj.manigmail.com 13a9f26f9a Merge remote-tracking branch 'quorum/master' into geth-upgrade-1.8.16 2018-11-29 17:56:02 +08:00
amalraj.manigmail.com 519337a9d0 Merge remote-tracking branch 'quorum/master' into geth-upgrade-1.8.16 2018-11-29 16:57:27 +08:00
Trung Nguyen c2a580217f
fixed method signature 2018-11-28 16:17:05 -05:00
vsmk98 36000ec2a1 changes to set readOnlyDepth only once during the entire opCode execution 2018-11-28 15:01:52 +08:00
amalraj.manigmail.com 7e1aa97d65 core/vm: revert to joel's change to getdualstate. This is a mandatory change for quorum
dual state & read only EVM

    This commit implements a dual state approach. The dual state approach
    separates public and private state by making the core vm environment
    context aware.

    Although not currently implemented it will need to prohibit value
    transfers and it must initialise all transactions from accounts on the
    public state. This means that sending transactions increments the
    account nonce on the public state and contract addresses are derived
    from the public state when initialised by a transaction. For obvious
    reasons, contract created by private contracts are still derived from
    public state.

    This is required in order to have consensus over the public state at all
    times as non-private participants would still process the transaction on
    the public state even though private payload can not be decrypted. This
    means that participants of a private group must do the same in order to
    have public consensus. However the creation of the contract and
    interaction still occurs on the private state.

    It implements support for the following calling model:

    S: sender, (X): private, X: public, ->: direction, [ ]: read only mode

    1. S -> A -> B
    2. S -> (A) -> (B)
    3. S -> (A) -> [ B -> C ]

    It does not support

    1. (S) -> A
    2. (S) -> (A)
    3. S -> (A) -> B

    Implemented "read only" mode for the EVM. Read only mode is checked
    during any opcode that could potentially modify the state. If such an
    opcode is encountered during "read only", it throws an exception.

    The EVM is flagged "read only" when a private contract calls in to
    public state.
2018-11-27 11:36:59 +08:00
amalraj.manigmail.com 66d46778e6 Merge remote-tracking branch 'quorum/master' into geth-upgrade-1.8.12
# Conflicts:
#	core/tx_pool_test.go
#	miner/worker.go
2018-11-26 15:17:57 +08:00
Trung Nguyen 99dcc0fd3f
fix unit test for PR 510 2018-11-23 11:20:31 -05:00
Samer Falah 40cf04732e
Merge pull request #510 from nathanawmk/master
Update max transaction size limit.
2018-11-23 10:16:54 -05:00
vsmk98 6b132548ec Merge remote-tracking branch 'vsmk/geth-upgrade-1.8.12' into 1812-permission-rpc-api
merge with geth-upgrade-1812
2018-11-23 17:29:26 +08:00
amalraj.manigmail.com 1783419ce5 core/vm : remove get dual state calls in some op codes as its unnecessary. evm push is setting stateDB to public / private correctly. 2018-11-23 14:51:03 +08:00
amalraj.manigmail.com 33724be5a7 revert to getDualState instead of evm.StateDB as per quorum 2018-11-22 17:08:45 +08:00
amalraj.manigmail.com 8438d79754 update gas limit as per quorum upstream 2018-11-22 15:41:04 +08:00
Michael Gu 927284b420 Add --txsizelimit flag to geth CLI that allows expansion of transaction size limit used by tx_pool.go => validateTx() 2018-11-21 12:56:55 -05:00
vsmk98 5b34cb7eee handling null pointer error for voter list when network brought in non permissioned mode 2018-11-20 22:51:49 +08:00
vsmk98 939142786e handled null pointer error for permissioned node and account list when network is brought in non-permissioned mode 2018-11-20 22:36:24 +08:00
vsmk98 cdf0e0dd5e validation to check voter account access before adding as voter 2018-11-20 21:29:03 +08:00
vsmk98 844fb584d2 changed to update permissioned-nodes.json, added additional check in api.go 2018-11-20 15:43:56 +08:00
vsmk98 bac8c0b048 addiitional checks in api, reduction of voter length upon delete 2018-11-19 14:59:10 +08:00
vsmk98 3da089da31 changes to check the details of node for approval 2018-11-19 11:58:34 +08:00
amalraj.manigmail.com 4543d5fde4 add voter list api 2018-11-16 13:40:36 +08:00
amalraj.manigmail.com e667a03b09 add permission account list api 2018-11-16 12:21:50 +08:00
vsmk98 4fdb4ec480 changes to account access logic 2018-11-16 11:07:10 +08:00
vsmk98 d49ed0318e Merge branch '1812-permission-rpc-api' of https://github.com/vsmk98/quorum into 1812-permission-rpc-api
merge with Amal's api segregation changes
2018-11-15 13:25:25 +08:00
vsmk98 4bcae7bd9b fatal error if a node joins permissioned network in non permissioned mode 2018-11-15 13:23:59 +08:00
amalraj.manigmail.com 9254d4c192 code improvements 2018-11-15 12:32:11 +08:00
amalraj.manigmail.com 20c8847831 Merge remote-tracking branch 'saiv/1812-permission-rpc-api' into 1812-permission-rpc-api-new
# Conflicts:
#	controls/permission/permission.go
2018-11-14 18:25:15 +08:00
amalraj.manigmail.com 9628cb5e2b format code 2018-11-14 18:24:28 +08:00
vsmk98 9eaace0990 removed commented code 2018-11-14 18:14:55 +08:00
vsmk98 405204cd23 remove p2p from api 2018-11-14 18:03:50 +08:00
vsmk98 7c94184803 changes for node list 2018-11-14 17:58:57 +08:00
vsmk98 3a3850af2c additional changes 2018-11-13 16:15:28 +08:00
gary rong 1212c7b844 core: fix default trie cache limit (#17860) 2018-11-12 18:06:34 +02:00
amalraj.manigmail.com f5c87e48a4 remove log messages added for debugging 2018-11-12 16:21:57 +08:00
amalraj.manigmail.com b6f497c5ef code improvements to quorum api 2018-11-12 16:16:56 +08:00
Corey Lin 1ff152f3a4 rawdb: remove unused parameter for WritePreimages func (#18059)
* rawdb: remove unused parameter for WritePreimages func and modify a
spelling mistake

* rawdb: update the doc for function WritePreimages
2018-11-09 12:51:07 +02:00
Felix Lange 870efeef01
core/state: remove lock (#18065)
The lock in StateDB is useless. It's only held in Copy, but Copy is safe
for concurrent use because all it does is read.
2018-11-08 21:37:19 +01:00
Péter Szilágyi d0675e9d9c
Merge pull request #17982 from holiman/polish_contantinople_extcodehash
core/vm: check empty in extcodehash
2018-11-08 14:26:04 +02:00
Corey Lin a5dc087845 core/vm, eth/tracers: use pointer receiver for GetRefund (#18018) 2018-11-08 13:07:15 +01:00
vsmk98 e3112a05ac Merge branch '1812-permission-rpc-api' of https://github.com/vsmk98/quorum into 1812-permission-rpc-api
merge for LRU cache implementation
2018-11-08 11:35:57 +08:00
vsmk98 345944eb73 Fixed error handling 2018-11-08 11:35:29 +08:00
Puneetha 4658a1542e Do not reset V value if the tx is already set to private 2018-11-07 17:22:45 +00:00
Felix Lange 0bcff8f525
eth/downloader: speed up tests by generating chain only once (#17916)
* core: speed up GenerateChain

Use a mock implementation of ChainReader instead of creating
and destroying a BlockChain object for each generated block.

* eth/downloader: speed up tests by generating chain only once

This change reworks the downloader tests so they share a common test
blockchain instead of generating a chain in every test. The tests are
roughly twice as fast now.
2018-11-07 15:07:43 +01:00
amalraj.manigmail.com ac2513c5a3 merge with lru cache usage 2018-11-07 20:50:49 +08:00
Martin Holst Swende eea3ae42a3 core, eth/downloader: fix validation flaw, fix downloader printout flaw (#17974) 2018-11-07 14:47:11 +02:00
amalraj.manigmail.com 3cb4bc2536 use lru cache for storing account access and org key map 2018-11-07 20:38:48 +08:00
vsmk98 6c34dc5199 Fixed error handling 2018-11-07 16:17:56 +08:00
vsmk98 b28fa8b445 additional APIs 2018-11-07 13:58:51 +08:00
vsmk98 3c68a587ba Added additional APIs 2018-11-05 23:44:23 +08:00
vsmk98 df4bec88db removed logging 2018-11-05 11:28:33 +08:00
vsmk98 fd598b49b8 merge with Amals changes 2018-11-02 22:59:20 +08:00
vsmk98 e949a737ab additional changes for permissions 2018-11-02 18:42:14 +08:00
amalraj.manigmail.com fac700181b add comments to quorum api 2018-11-01 13:45:16 +08:00
amalraj.manigmail.com d0c3191d83 quorum/api: add SendTxArgs to accept txn args 2018-11-01 13:12:11 +08:00
vsmk98 5cd1b2c561 formatting changes 2018-11-01 11:02:13 +08:00
amalraj.manigmail.com 033a128450 improvements to quorum api code 2018-10-31 20:46:54 +08:00
amalraj.manigmail.com 01233f583e read account from wallet 2018-10-31 15:15:34 +08:00
amalraj.manigmail.com 46cf4ddfb6 add apis for org key management 2018-10-30 15:59:08 +08:00
amalraj.manigmail.com 1f2504ff08 add all APIs related to node permission 2018-10-30 15:05:41 +08:00
amalraj.manigmail.com 64d8db5678 add api implementation for permission node - propose node 2018-10-30 10:41:01 +08:00
Martin Holst Swende 1b6fd032e3
core/vm: check empty in extcodehash 2018-10-26 08:56:37 +02:00
Jitendra Bhurat ea0c1ffd45 Adding private log blooms to DB in addition to public log bloom 2018-10-24 14:44:11 -04:00
Felix Lange 7f22b59f87 core/state: simplify proof methods (#17965)
This fixes the import cycle build error in core/vm tests.
There is no need to refer to core/vm for a type definition.
2018-10-23 21:51:41 +02:00
Martin Holst Swende 4c0883e20d core/vm: adds refund as part of the json standard trace (#17910)
This adds the global accumulated refund counter to the standard
json output as a numeric json value. Previously this was not very
interesting since it was not used much, but with the new sstore
gas changes the value is a lot more interesting from a consensus
investigation perspective.
2018-10-23 16:28:18 +02:00
vsmk98 519348e621 Cherry pick pvt abigen. Make errors exist 2018-10-23 10:21:57 +08:00
Wuxiang d98c45f70f core: fix a typo (#17941) 2018-10-19 16:33:27 +03:00
Simon Jentzsch 97fb08342d EIP-1186 eth_getProof (#17737)
* first impl of eth_getProof

* fixed docu

* added comments and refactored based on comments from holiman

* created structs

* handle errors correctly

* change Value to *hexutil.Big in order to have the same output as parity

* use ProofList as return type
2018-10-18 21:41:22 +02:00
Smilenator 2868acd80b core/types: fix comment for func SignatureValues (#17921) 2018-10-16 12:45:28 +02:00
Martin Holst Swende a352de6a08 core/vm: add shortcuts for trivial exp cases (#16851) 2018-10-16 00:51:39 +02:00
vsmk98 d6352b30c3 Merge of 1812 with permissions changes and fix of conflicts 2018-10-12 04:24:36 +00:00
amalraj.manigmail.com 662ee40ede fix go test cases 2018-10-10 11:28:19 +08:00
amalraj.manigmail.com fcfc7b6d45 merge with quorum upstream master 2018-10-09 16:01:11 +08:00
Guillaume Ballet 97b2806686 core/asm: Use hexadecimal addresses in assembly dumps (#17870) 2018-10-09 10:27:07 +03:00
Wenbiao Zheng 31c4e3a118 core/types: Log.Index is the index in block, not receipt (#17866) 2018-10-08 13:15:19 +02:00
Péter Szilágyi 1d3d4a4d57 core/vm: reuse Keccak-256 hashes across opcode executions (#17863) 2018-10-08 13:14:29 +02:00
vsmk98 8c2a8ab32a reverted some changes 2018-10-08 06:29:11 +00:00
Martin Holst Swende 58e868b759
core/vm : fix failing testcase (#17852)
* core/vm : fix failing testcase

* core/vm: fix nitpick
2018-10-05 19:02:06 +02:00
vsmk98 d20b42b6a6 test changes 2018-10-05 08:31:09 +00:00
vsmk98 c245bf5c8a reverting changes 2018-10-05 08:20:21 +00:00
Martin Holst Swende 092df3ab59 core/vm: SHA3 word cost for CREATE2 (#17812)
* core/vm: create2 address generation tests

* core/vm: per byte cost of CREATE2

* core/vm: fix linter issue in test
2018-10-05 10:32:35 +03:00
Sai Valiveti 9ab2f224d9 Node crash issue fix 2018-10-05 14:59:20 +08:00
Martin Holst Swende 89a32451ae core/vm: faster create/create2 (#17806)
* core/vm/runtim: benchmark create/create2

* core/vm: do less hashing in CREATE2

* core/vm: avoid storing jumpdest analysis for initcode

* core/vm: avoid unneccesary lookups, remove unused fields

* core/vm: go formatting tests

* core/vm: save jumpdest analysis locally

* core/vm: use common.Hash instead of nil, fix review comments

* core/vm: removed type destinations

* core/vm: correct check for empty hash

* eth: more elegant api_tracer

* core/vm: address review concerns
2018-10-04 18:15:37 +03:00