aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* rpc: fix closure problem in batch processing (#14688)bloonfield2017-06-261-2/+2
| | | Demo of the issue: https://play.golang.org/p/EeTLFfppqC
* Merge pull request #14697 from homotopycolimit/masterPéter Szilágyi2017-06-261-1/+1
|\ | | | | swarm/storage: remove panic on invalid chunk
| * swarm/storage: remove panic on invalid chunkaron2017-06-251-1/+1
| |
* | Makefile: add make swarm command (#14698)Aron2017-06-261-1/+6
| | | | | | | | | | | | * Makefile: add make swarm command * Makefile: minor code formatting polishes
* | Update README.md (#14701)G. Kay Lee2017-06-261-1/+1
|/ | | README: change heading to "Go Ethereum"
* params, VERSION: 1.6.7 unstableFelix Lange2017-06-232-5/+5
|
* params: 1.6.6 stableFelix Lange2017-06-231-4/+4
|
* Merge pull request #14596 from markya0616/valid_clique_votePéter Szilágyi2017-06-232-10/+23
|\ | | | | consensus/clique: choose valid votes
| * consensus/clique: minor cleanupsPéter Szilágyi2017-06-231-6/+7
| |
| * consensus/clique: choose valid votesmark.lin2017-06-142-11/+23
| |
* | Merge pull request #14685 from karalabe/ethdb-metrics-fail-fixPéter Szilágyi2017-06-232-2/+9
|\ \ | | | | | | eth: gracefully error if database cannot be opened
| * | node: don't return non-nil database on errorFelix Lange2017-06-231-1/+5
| | |
| * | eth: gracefully error if database cannot be openedPéter Szilágyi2017-06-231-1/+4
| | |
* | | Merge pull request #14681 from fjl/build-fixupPéter Szilágyi2017-06-232-0/+3
|\ \ \ | |/ / |/| | travis.yml, cmd/swarm: fix Travis CI build
| * | travis.yml: add fakeroot to launchpad builderFelix Lange2017-06-231-0/+1
| | |
| * | cmd/swarm: disable TestCLISwarmUp because it's flakyFelix Lange2017-06-231-0/+2
|/ /
* | Merge pull request #14673 from holiman/txfixPéter Szilágyi2017-06-233-42/+200
|\ \ | | | | | | core: add testcase for txpool
| * | core: ensure transactions correctly drop on pool limitingPéter Szilágyi2017-06-233-88/+167
| | |
| * | core: add testcase for txpoolMartin Holst Swende2017-06-232-0/+79
| | |
* | | Merge pull request #14677 from karalabe/miner-cli-gaspricePéter Szilágyi2017-06-221-0/+4
|\ \ \ | | | | | | | | cmd/geth: corrently init gas price for CLI CPU mining
| * | | cmd/geth: corrently init gas price for CLI CPU miningPéter Szilágyi2017-06-221-0/+4
| |/ /
* / / eth/downloader: separate state sync from queue (#14460)Felix Lange2017-06-229-479/+769
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * eth/downloader: separate state sync from queue Scheduling of state node downloads hogged the downloader queue lock when new requests were scheduled. This caused timeouts for other requests. With this change, state sync is fully independent of all other downloads and doesn't involve the queue at all. State sync is started and checked on in processContent. This is slightly awkward because processContent doesn't have a select loop. Instead, the queue is closed by an auxiliary goroutine when state sync fails. We tried several alternatives to this but settled on the current approach because it's the least amount of change overall. Handling of the pivot block has changed slightly: the queue previously prevented import of pivot block receipts before the state of the pivot block was available. In this commit, the receipt will be imported before the state. This causes an annoyance where the pivot block is committed as fast block head even when state downloads fail. Stay tuned for more updates in this area ;) * eth/downloader: remove cancelTimeout channel * eth/downloader: retry state requests on timeout * eth/downloader: improve comment * eth/downloader: mark peers idle when state sync is done * eth/downloader: move pivot block splitting to processContent This change also ensures that pivot block receipts aren't imported before the pivot block itself. * eth/downloader: limit state node retries * eth/downloader: improve state node error handling and retry check * eth/downloader: remove maxStateNodeRetries It fails the sync too much. * eth/downloader: remove last use of cancelCh in statesync.go Fixes TestDeliverHeadersHang*Fast and (hopefully) the weird cancellation behaviour at the end of fast sync. * eth/downloader: fix leak in runStateSync * eth/downloader: don't run processFullSyncContent in LightSync mode * eth/downloader: improve comments * eth/downloader: fix vet, megacheck * eth/downloader: remove unrequested tasks anyway * eth/downloader, trie: various polishes around duplicate items This commit explicitly tracks duplicate and unexpected state delieveries done against a trie Sync structure, also adding there to import info logs. The commit moves the db batch used to commit trie changes one level deeper so its flushed after every node insertion. This is needed to avoid a lot of duplicate retrievals caused by inconsistencies between Sync internals and database. A better approach is to track not-yet-written states in trie.Sync and flush on commit, but I'm focuing on correctness first now. The commit fixes a regression around pivot block fail count. The counter previously was reset to 1 if and only if a sync cycle progressed (inserted at least 1 entry to the database). The current code reset it already if a node was delivered, which is not stong enough, because unless it ends up written to disk, an attacker can just loop and attack ad infinitum. The commit also fixes a regression around state deliveries and timeouts. The old downloader tracked if a delivery is stale (none of the deliveries were requestedt), in which case it didn't mark the node idle and did not send further requests, since it signals a past timeout. The current code did mark it idle even on stale deliveries, which eventually caused two requests to be in flight at the same time, making the deliveries always stale and mass duplicating retrievals between multiple peers. * eth/downloader: fix state request leak This commit fixes the hang seen sometimes while doing the state sync. The cause of the hang was a rare combination of events: request state data from peer, peer drops and reconnects almost immediately. This caused a new download task to be assigned to the peer, overwriting the old one still waiting for a timeout, which in turned leaked the requests out, never to be retried. The fix is to ensure that a task assignment moves any pending one back into the retry queue. The commit also fixes a regression with peer dropping due to stalls. The current code considered a peer stalling if they timed out delivering 1 item. However, the downloader never requests only one, the minimum is 2 (attempt to fine tune estimated latency/bandwidth). The fix is simply to drop if a timeout is detected at 2 items. Apart from the above bugfixes, the commit contains some code polishes I made while debugging the hang. * core, eth, trie: support batched trie sync db writes * trie: rename SyncMemCache to syncMemBatch
* | Merge pull request #14657 from markya0616/refactor_cliquePéter Szilágyi2017-06-211-8/+7
|\ \ | | | | | | consensus/clique: fix typo and don't need to add snapshot into recents again
| * | consensus/clique: fix typo and don't add snapshot into recents againmark.lin2017-06-201-8/+7
| | |
* | | swarm/test: add integration test for 'swarm up' (#14353)Lewis Marshall2017-06-2117-293/+1048
| | |
* | | README: document new config file option (#14348)Maximilian Meister2017-06-211-0/+16
| | |
* | | cmd/evm, core/vm: add --nomemory, --nostack to evm (#14617)Martin Holst Swende2017-06-215-47/+68
| | |
* | | Merge pull request #14667 from fjl/swarm-fuse-cleanupPéter Szilágyi2017-06-213-206/+132
|\ \ \ | | | | | | | | swarm/fuse: simplify externalUnmount, use subtests
| * | | swarm/fuse: use subtestsFelix Lange2017-06-211-171/+112
| | | |
| * | | swarm/fuse: simplify externalUnmountFelix Lange2017-06-212-35/+20
| | | | | | | | | | | | | | | | | | | | | | | | The code looked for /usr/bin/diskutil on darwin, but it's actually located in /usr/sbin. Fix that by not specifying the absolute path. Also remove weird timeout construction and extra whitespace.
* | | | les: code refactoring (#14416)Felföldi Zsolt2017-06-2115-441/+699
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit does various code refactorings: - generalizes and moves the request retrieval/timeout/resend logic out of LesOdr (will be used by a subsequent PR) - reworks the peer management logic so that all services can register with peerSet to get notified about added/dropped peers (also gets rid of the ugly getAllPeers callback in requestDistributor) - moves peerSet, LesOdr, requestDistributor and retrieveManager initialization out of ProtocolManager because I believe they do not really belong there and the whole init process was ugly and ad-hoc
* | | | ethclient: fix TransactionByHash pending return value. (#14663)Jim McDonald2017-06-211-2/+2
|/ / / | | | | | | | | | | | | | | | As per #14661 TransactionByHash always returns false for pending. This uses blockNumber rather than blockHash to ensure that it returns the correct value for pending and will not suffer side-effects if eth_getTransactionByHash is fixed in future.
* / / trie: more node iterator improvements (#14615)Felix Lange2017-06-217-172/+288
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ethdb: remove Set Set deadlocks immediately and isn't part of the Database interface. * trie: add Err to Iterator This is useful for testing because the underlying NodeIterator doesn't need to be kept in a separate variable just to get the error. * trie: add LeafKey to iterator, panic when not at leaf LeafKey is useful for callers that can't interpret Path. * trie: retry failed seek/peek in iterator Next Instead of failing iteration irrecoverably, make it so Next retries the pending seek or peek every time. Smaller changes in this commit make this easier to test: * The iterator previously returned from Next on encountering a hash node. This caused it to visit the same path twice. * Path returned nibbles with terminator symbol for valueNode attached to fullNode, but removed it for valueNode attached to shortNode. Now the terminator is always present. This makes Path unique to each node and simplifies Leaf. * trie: add Path to MissingNodeError The light client trie iterator needs to know the path of the node that's missing so it can retrieve a proof for it. NodeIterator.Path is not sufficient because it is updated when the node is resolved and actually visited by the iterator. Also remove unused fields. They were added a long time ago before we knew which fields would be needed for the light client.
* | Merge pull request #14635 from necaremus/patch-1Péter Szilágyi2017-06-161-1/+1
|\ \ | | | | | | cmd/geth: fixed a minor typo in the comments
| * | cmd/geth: fixed a minor typo in the commentsnecaremus2017-06-161-1/+1
|/ /
* | eth: remove les server from protocol manager (#14625)Alan Chen2017-06-152-3/+0
| |
* | Merge pull request #14581 from holiman/byte_optPéter Szilágyi2017-06-134-8/+174
|\ \ | | | | | | core/vm: improve opByte
| * | core/vm, common/math: Add doc about Byte, fix formatMartin Holst Swende2017-06-093-16/+20
| | |
| * | common/math, core/vm: Un-expose bigEndianByteAt, use correct terms for ↵Martin Holst Swende2017-06-073-18/+19
| | | | | | | | | | | | endianness
| * | core/vm, common/math: Add fast getByte for bigints, improve opByteMartin Holst Swende2017-06-054-8/+169
| |/
* | Merge pull request #14604 from bas-vk/mobile-getfromPéter Szilágyi2017-06-132-2/+34
|\ \ | | | | | | mobile: use EIP155 signer for determining sender
| * | mobile: add a regression test for signer recoveryPéter Szilágyi2017-06-131-0/+29
| | |
| * | mobile: use EIP155 signer for determining senderBas van Kervel2017-06-131-2/+5
| | |
* | | rlp, trie, contracts, compression, consensus: improve comments (#14580)S. Matthew English2017-06-1223-179/+44
| | |
* | | Merge pull request #14598 from konradkonrad/fix_makedagPéter Szilágyi2017-06-121-2/+2
|\ \ \ | |/ / |/| | consensus/ethash, cmd/geth: Fix `makedag` epoch
| * | consensus: Fix `makedag` epochKonrad Feldmeier2017-06-121-2/+2
|/ / | | | | | | | | | | | | | | | | `geth makedag <blocknumber> <path>` was creating DAGs for `<blocknumber>/<epoch_length> + 1`, hence it was impossible to create an epoch 0 DAG. This fixes the calculations in `consensus/ethash/ethash.go` for `MakeDataset` and `MakeCache`, and applies `gofmt`.
* | cmd/evm: add --prestate, --sender, --json flags for fuzzing (#14476)Martin Holst Swende2017-06-078-35/+295
| |
* | core/types: use Header.Hash for block hashes (#14587)bailantaotao2017-06-071-1/+1
| | | | | | Fixes #14586
* | cmd/swarm: fix error handling in 'swarm up' (#14557)Lewis Marshall2017-06-061-13/+22
| | | | | | | | | | | | The error returned by client.Upload was previously being ignored due to becoming out of scope outside the if statement. This has been fixed by instead defining a function which returns the hash and error (rather than trying to set the hash in each branch of the if statement).
* | Merge pull request #14583 from ethersphere/core-log-fixesPéter Szilágyi2017-06-061-1/+1
|\ \ | | | | | | core: Fix VM error logging
| * | core: Fix VM error loggingLewis Marshall2017-06-061-1/+1
| |/ | | | | | | Signed-off-by: Lewis Marshall <lewis@lmars.net>
* / accounts: fix spelling error (#14567)FaceHo2017-06-061-1/+1
|/
* VERSION, params: begin Geth 1.6.6 release cyclePéter Szilágyi2017-06-022-5/+5
|
* params: mark Geth v1.6.5 stable (Hat Trick)Péter Szilágyi2017-06-021-4/+4
|
* Merge pull request #14570 from Arachnid/jumpdestanalysisPéter Szilágyi2017-06-021-14/+12
|\ | | | | core/vm: Use a bitmap instead of a map for jumpdest analysis
| * core/vm: Use a bitmap instead of a map for jumpdest analysisNick Johnson2017-06-021-14/+12
|/ | | | t push --force
* VERSION, params: begin geth 1.6.5 cyclePéter Szilágyi2017-06-012-5/+5
|
* params: Geth 1.6.4 stable (hotfix)Péter Szilágyi2017-06-011-4/+4
|
* internal/ethapi: initialize account mutex in lock properlyMartin Holst Swende2017-06-011-2/+3
|
* swarm/dev: add development environment (#14332)Lewis Marshall2017-06-0111-0/+726
| | | | | This PR adds a Swarm development environment which can be run in a Docker container and provides scripts for building binaries and running Swarm clusters.
* VERSION, params: begin Geth 1.6.4 release cyclePéter Szilágyi2017-06-012-5/+5
|
* params: release Geth 1.6.3 - CovfefePéter Szilágyi2017-06-011-4/+4
|
* Merge pull request #14565 from karalabe/relax-privkey-checksPéter Szilágyi2017-06-014-17/+25
|\ | | | | accounts/keystore, crypto: don't enforce key checks on existing keyfiles
| * accounts/keystore, crypto: don't enforce key checks on existing keyfilesPéter Szilágyi2017-06-014-17/+25
| |
* | Merge pull request #14561 from karalabe/txpool-perf-fixPéter Szilágyi2017-06-012-32/+35
|\ \ | | | | | | core: reduce transaction reorganization overhead
| * | core: only reorg changed account, not allPéter Szilágyi2017-06-012-21/+35
| | |
| * | core: don't uselessly recheck transactions on dumpPéter Szilágyi2017-06-011-19/+8
| |/
* | Merge pull request #14563 from karalabe/ethstats-reduce-traffic-2Péter Szilágyi2017-06-011-22/+51
|\ \ | | | | | | ethstats: reduce ethstats traffic by trottling reports
| * | ethstats: reduce ethstats traffic by trottling reportsPéter Szilágyi2017-06-011-22/+51
| |/
* | Merge pull request #14564 from karalabe/fix-1.6-dockerPéter Szilágyi2017-06-011-1/+1
|\ \ | |/ |/| cotnainers/docker: fix the legacy alpine image before dropping
| * cotnainers/docker: fix the legacy alpine image before droppingPéter Szilágyi2017-06-011-1/+1
|/
* params, VERSION: 1.6.3 unstableFelix Lange2017-05-312-5/+5
|
* params: 1.6.2 stableFelix Lange2017-05-311-4/+4
|
* Merge pull request #14516 from holiman/noncefixesPéter Szilágyi2017-05-304-37/+93
|\ | | | | internal/ethapi: add mutex around signing + nonce assignment
| * internal/ethapi: add mutex around signing + nonce assignmentMartin Holst Swende2017-05-304-37/+93
| | | | | | | | | | This prevents concurrent assignment of identical nonces when automatic assignment is used.
* | Merge pull request #14553 from karalabe/puppeth-key-checkPéter Szilágyi2017-05-302-3/+2
|\ \ | | | | | | cmd/puppeth: fix improper key validation for remotes
| * | cmd/puppeth: fix improper key validation for remotesPéter Szilágyi2017-05-302-3/+2
| | |
* | | Merge pull request #14547 from karalabe/txpool-gas-decreasePéter Szilágyi2017-05-303-31/+72
|\ \ \ | |/ / |/| | core: check for gas limit exceeding txs too on new block
| * | core: check for gas limit exceeding txs too on new blockPéter Szilágyi2017-05-303-31/+72
| | |
* | | Merge pull request #14545 from karalabe/clique-cache-signaturesPéter Szilágyi2017-05-302-23/+34
|\ \ \ | | | | | | | | consensus/clique: cache block signatures for fast checks
| * | | consensus/clique: cache block signatures for fast checksPéter Szilágyi2017-05-302-23/+34
| |/ /
* | | Merge pull request #14548 from karalabe/ethstats-no-txsPéter Szilágyi2017-05-301-12/+10
|\ \ \ | |/ / |/| | ethstats: don't report transaction content, only hash
| * | ethstats: don't report transaction content, only hashPéter Szilágyi2017-05-301-12/+10
|/ /
* | Merge pull request #14523 from karalabe/txpool-cli-flagsPéter Szilágyi2017-05-2910-105/+241
|\ \ | | | | | | cmd, core, eth: configurable txpool parameters
| * | cmd, core, eth: configurable txpool parametersPéter Szilágyi2017-05-2910-105/+241
| | |
* | | Merge pull request #14539 from karalabe/txpool-inspec-noncesPéter Szilágyi2017-05-291-8/+8
|\ \ \ | | | | | | | | internal/ethapi: fix tx nonces in pool inspect/content
| * | | internal/ethapi: fix tx nonces in pool inspect/contentPéter Szilágyi2017-05-291-8/+8
| | | |
* | | | Merge pull request #14537 from karalabe/setgasprice-durning-nominePéter Szilágyi2017-05-292-10/+24
|\ \ \ \ | | | | | | | | | | eth: update default gas price when not mining too
| * | | | eth: update default gas price when not mining tooPéter Szilágyi2017-05-292-10/+24
| |/ / /
* | | | Merge pull request #14524 from karalabe/noimport-during-fastsyncPéter Szilágyi2017-05-292-0/+6
|\ \ \ \ | |/ / / |/| | | eth: don't import propagated blocks during fastsync
| * | | eth: don't import propagated blocks during fastsyncPéter Szilágyi2017-05-262-0/+6
|/ / /
* | | Merge pull request #14517 from Ali92hm/masterNick Johnson2017-05-261-2/+3
|\ \ \ | |/ / |/| | Improved Dockerfile?
| * | dockerfile: expose 30303/udpAli92hm2017-05-261-0/+1
| | |
| * | dockerfile: cp geth to /usr/local/binAli92hm2017-05-261-2/+2
|/ /
* | Merge pull request #14514 from karalabe/go1.8.3Péter Szilágyi2017-05-252-14/+14
|\ \ | | | | | | travis, appveyor: bump to Go 1.8.3, Android NDK 14b
| * | travis, appveyor: bump to Go 1.8.3, Android NDK 14bPéter Szilágyi2017-05-252-14/+14
| |/
* | Merge pull request #14515 from karalabe/golint-tooooolongPéter Szilágyi2017-05-2512-325/+326
|\ \ | |/ |/| core: fix various golint warnings and errors
| * core: fix minor accidental typos and comment errorsPéter Szilágyi2017-05-253-8/+8
| |
| * core: typos and comments improvechanghong2017-05-2511-323/+324
|/ | | | | | | | 1. fix typos 2. methods recevier of struct should be same 3. comments improve (cherry picked from commit 1ba979539582a00b7fd1a7c8a37a6852e59eac0d)
* Merge pull request #14446 from bas-vk/cli-helpPéter Szilágyi2017-05-253-12/+70
|\ | | | | Rewrite templates for (sub)commands help section
| * cmd/geth: reorganise help section for new cli flag handlingBas van Kervel2017-05-253-12/+70
| |
* | Merge pull request #14513 from obscuren/allocate-stackPéter Szilágyi2017-05-251-1/+1
|\ \ | | | | | | core/vm: allocate stack to 1024
| * | core/vm: allocate stack to 1024Jeffrey Wilcke2017-05-251-1/+1
| |/ | | | | | | | | Pre allocate the stack to 1024 optimising stack pushing, reducing calls to runtime.makeslice and runtime.mallocgc
* / README: corrected attach example (#14512)Or Rikon2017-05-251-1/+1
|/
* Merge pull request #14502 from karalabe/mobile-import-ecdsaFelix Lange2017-05-2511-34/+49
|\ | | | | Enforce 256 bit keys on raw import, support raw mobile imports
| * mobile: support importing flat ecdsa keyst tooPéter Szilágyi2017-05-231-3/+17
| |
| * accounts/keystore, crypto: enforce 256 bit keys on importPéter Szilágyi2017-05-2310-31/+32
| |
* | Merge pull request #14336 from obscuren/metropolis-preparationFelix Lange2017-05-2535-236/+2983
|\ \ | | | | | | consensus, core/*, params: metropolis preparation refactor
| * | consensus/ethash: fix TestCalcDifficultyFelix Lange2017-05-241-1/+1
| | |
| * | crypto/bn256: fix go vet false positiveFelix Lange2017-05-245-22/+25
| | | | | | | | | | | | Also add the package to the license tool ignore list.
| * | common: fixed byte padding functionsJeffrey Wilcke2017-05-231-3/+3
| | | | | | | | | | | | | | | | | | | | | Byte padding function should return the given slice if the length is smaller or equal rather than *only* smaller than. This fix improves almost all EVM push operations.
| * | core/vm: expose intpool to stack dup methodJeffrey Wilcke2017-05-232-3/+3
| | | | | | | | | | | | | | | Improve the duplication method of the stack to reuse big ints by passing in an existing integer pool.
| * | core/vm: capped int poolJeffrey Wilcke2017-05-231-0/+6
| | |
| * | core/vm: improved push instructionsJeffrey Wilcke2017-05-232-35/+48
| | | | | | | | | | | | | | | Improved push instructions by removing unnecessary big int allocations and by making it int instead of big.Int
| * | cmd/evm: added mem/cpu profilingJeffrey Wilcke2017-05-232-0/+44
| | |
| * | core/vm: improve error message for invalid opcodesValentin Wüstholz2017-05-221-1/+1
| | |
| * | core/state: fixed (self)destructed objectsJeffrey Wilcke2017-05-182-2/+9
| | | | | | | | | | | | | | | | | | Add the object to the list of destructed objects during a selfdestruct / suicide operation and also remove it from the list once the journal reverts.
| * | consensus, core, core/vm, parems: review fixesJeffrey Wilcke2017-05-186-42/+34
| | |
| * | core/types: corrected abstract signing addressJeffrey Wilcke2017-05-182-2/+2
| | |
| * | consensus/ethash: set time to current instead of parent timeJeffrey Wilcke2017-05-181-1/+1
| | |
| * | consensus, core/*, params: metropolis preparation refactorJeffrey Wilcke2017-05-1828-183/+2865
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is a preparation for the upcoming metropolis hardfork. It prepares the state, core and vm packages such that integration with metropolis becomes less of a hassle. * Difficulty calculation requires header instead of individual parameters * statedb.StartRecord renamed to statedb.Prepare and added Finalise method required by metropolis, which removes unwanted accounts from the state (i.e. selfdestruct) * State keeps record of destructed objects (in addition to dirty objects) * core/vm pre-compiles may now return errors * core/vm pre-compiles gas check now take the full byte slice as argument instead of just the size * core/vm now keeps several hard-fork instruction tables instead of a single instruction table and removes the need for hard-fork checks in the instructions * core/vm contains a empty restruction function which is added in preparation of metropolis write-only mode operations * Adds the bn256 curve * Adds and sets the metropolis chain config block parameters (2^64-1)
* | | Merge pull request #14507 from karalabe/faucet-misspellPéter Szilágyi2017-05-241-1/+1
|\ \ \ | | | | | | | | cmd/faucet: fix a few typos
| * | | cmd/faucet: fix a few typosPéter Szilágyi2017-05-241-1/+1
|/ / /
* | | Merge pull request #14504 from bas-vk/wallet-importPéter Szilágyi2017-05-241-15/+30
|\ \ \ | |_|/ |/| | cmd/geth: reintroduce wallet import subcommand
| * | cmd/geth: reintroduce wallet import subcommandBas van Kervel2017-05-231-15/+30
|/ /
* | Merge pull request #14501 from sqli-nantes/masterPéter Szilágyi2017-05-232-0/+65
|\ \ | | | | | | mobile: manage FilterQuery enabling contract events subscription
| * | mobile: Add management methods to {Addresses,Topics,Hashes} structuresNicolas Guillaume2017-05-232-0/+60
| | |
| * | mobile: Allows mobile clients to create custom FilterQueriesNicolas Guillaume2017-05-221-0/+5
|/ /
* | swarm/api: Fix adding paths which exist as manifests (#14482)Lewis Marshall2017-05-222-2/+35
| | | | | | Signed-off-by: Lewis Marshall <lewis@lmars.net>
* | cmd/swarm: Add --httpaddr flag (#14475)Lewis Marshall2017-05-225-19/+30
| | | | | | | | | | Fixes #14474. Signed-off-by: Lewis Marshall <lewis@lmars.net>
* | README: fixing typo in documentation (#14493)Dave Conroy2017-05-221-1/+1
| |
* | discover: Changed Logging from Debug to Info (#14485)Ali Hajimirza2017-05-201-1/+1
| |
* | internal/ethapi: lock when auto-filling transaction nonce (#14483)Martin Holst Swende2017-05-191-0/+23
|/ | | | | | | More context in the bug This solves the problems of transactions being submitted simultaneously, and getting the same nonce, due to the gap (due to signing) between nonce-issuance and nonce-update. With this PR, a lock will need to be acquired whenever a nonce is used, and released when the transaction is submitted or errors out.
* cmd, core, eth, miner: remove txpool gas price limits (#14442)Péter Szilágyi2017-05-1711-178/+619
|
* les: fix goroutine leak in execQueue (#14480)Felix Lange2017-05-172-30/+118
| | | | | | | | | | | execQueue used an atomic counter to track whether the queue had been closed, but the checking the counter didn't happen because the queue was blocked on its channel. Fix it by using a condition variable instead of sync/atomic. I tried an implementation based on channels first, but it was hard to make it reliable. quit now waits for the queue loop to exit.
* cmd/puppeth: v4/v5 boot separation, signer gas configs (#14453)Péter Szilágyi2017-05-134-8/+73
|
* swarm/api: fix error reporting in api.Resolve (#14464)Lewis Marshall2017-05-133-21/+148
| | | | | | | Previously, resolve errors were being swallowed and the returned error was a generic "not a content hash" which isn't helpful. This updates the Resolve function to fail fast rather than only returning an error at the end, and also adds test coverage.
* mobile: accept nil for chainid as homestead signing (#14463)Péter Szilágyi2017-05-131-0/+6
|
* containers/vagrant: add support for CentOS (#14380)Koustubh Sinkar2017-05-135-19/+62
| | | | | | CentOS has been added as a multi-machine option to the Vagrant script. Ubuntu is still the default option. For starting the CentOS machine, use: vagrant up centos
* Merge pull request #14454 from karalabe/mobile-surface-txrlpPéter Szilágyi2017-05-111-3/+159
|\ | | | | mobile: add toString & rlp/json encoding for protocol types
| * mobile: add toString & rlp/json encoding for protocol typesPéter Szilágyi2017-05-111-3/+159
|/
* Merge pull request #14452 from karalabe/dual-bootnodesPéter Szilágyi2017-05-114-8/+32
|\ | | | | cmd, node: support different bootnodes, fix default light port
| * cmd, node: support different bootnodes, fix default light portPéter Szilágyi2017-05-104-8/+32
|/
* README: update attach instructions for testnet users (#14448)bas-vk2017-05-091-6/+8
|
* Merge pull request #14441 from karalabe/receipt-data-regressionPéter Szilágyi2017-05-082-8/+5
|\ | | | | core: fix processing regression during receipt import
| * core: fix processing regression during receipt importPéter Szilágyi2017-05-082-8/+5
| |
* | Merge pull request #14427 from zsfelfoldi/compressPéter Szilágyi2017-05-083-0/+407
|\ \ | |/ |/| common/bitutil: added data compression algorithm
| * common/compress: internalize encoders, add length wrappersPéter Szilágyi2017-05-083-70/+125
| |
| * common/bitutil: fix decompression corner cases; fuzz, test & benchPéter Szilágyi2017-05-073-43/+302
| |
| * common/bitutil: added data compression algorithmZsolt Felfoldi2017-05-061-0/+93
| |
* | Merge pull request #14440 from karalabe/cocoapods-confirm-fixPéter Szilágyi2017-05-081-1/+1
|\ \ | |/ |/| travis: adapt build script to new travis VM settings
| * travis: adapt build script to new travis VM settingsPéter Szilágyi2017-05-081-1/+1
|/
* Merge pull request #14423 from karalabe/bitutilPéter Szilágyi2017-05-054-86/+405
|\ | | | | common/bitutil, consensus/ethash: reusable bitutil package
| * common/bitutil, consensus/ethash: reusable bitutil packagePéter Szilágyi2017-05-054-86/+405
|/
* VERSION, params: begin 1.6.2 release cyclePéter Szilágyi2017-05-042-5/+5
|
* params: release Geth 1.6.1, Deripors of OhratuuPéter Szilágyi2017-05-041-4/+4
|
* Merge pull request #14418 from karalabe/rinkeby-flagPéter Szilágyi2017-05-047-16/+80
|\ | | | | cmd, core, params: add --rinkeby flag for fast connectivity
| * cmd, core, params: add --rinkeby flag for fast connectivityPéter Szilágyi2017-05-047-16/+80
| |
* | Hive-test fixes (#14419)Martin Holst Swende2017-05-042-0/+11
| | | | | | | | | | | | | | | | | | | | * core: Fix for consensus test gasLimit > 2^63-1 https://github.com/ethereum/tests/blob/develop/BlockchainTests/bcInvalidHeaderTest.json#L238 * core: fix testcase for uncle gasUsage > gasLimit : https://github.com/ethereum/tests/blob/develop/BlockchainTests/EIP150/bcUncleHeaderValiditiy.json#L986 * math/big: rename TTM63m1 -> MaxBig63, + go fmt * core: documentation
* | Merge pull request #14413 from bas-vk/cli-chain-mngtPéter Szilágyi2017-05-048-94/+129
|\ \ | | | | | | Migrate remaining flags/command to new style
| * | cmd/geth: migrate dumpconfig command/flagsBas van Kervel2017-05-031-1/+2
| | |
| * | cmd/geth: migrate bug command/flagsBas van Kervel2017-05-031-1/+2
| | |
| * | cmd/geth: migrate metric command/flagsBas van Kervel2017-05-031-1/+1
| | |
| * | cmd/geth: reorganise misc commands/flagsBas van Kervel2017-05-031-4/+4
| | |
| * | cmd/geth: reorganise console/attach commands/flagsBas van Kervel2017-05-033-67/+79
| | |
| * | cmd/geth: reorganise chain commands/flagsBas van Kervel2017-05-031-20/+41
| | |
* | | Merge pull request #14402 from karalabe/tiered-faucetPéter Szilágyi2017-05-045-30/+93
|\ \ \ | |_|/ |/| | cmd/faucet, cmd/puppeth: support multi-tiered faucet
| * | cmd/faucet: fix period to days conversionPéter Szilágyi2017-05-041-4/+5
| | |
| * | cmd/faucet, cmd/puppeth: support multi-tiered faucetPéter Szilágyi2017-05-045-30/+92
|/ /
* | Merge pull request #14414 from gluk256/77_releasePéter Szilágyi2017-05-031-0/+5
|\ \ | |/ |/| build: wnode added to the build configuration
| * build: wnode added to the build configurationVlad2017-05-031-0/+5
| |
* | Merge pull request #14412 from karalabe/init-both-chainsPéter Szilágyi2017-05-032-42/+45
|\ \ | | | | | | cmd/geth, cmd/utils: init/removedb on light/full dbs simultaneously
| * | cmd/geth, cmd/utils: init/removedb on light/full dbs simultaneouslyPéter Szilágyi2017-05-032-42/+45
|/ /
* | Merge pull request #14411 from karalabe/clique-double-signPéter Szilágyi2017-05-031-1/+1
|\ \ | | | | | | consensus/clique: fix overflow on recent signer check around genesis
| * | consensus/clique: fix overflow on recent signer check around genesisPéter Szilágyi2017-05-031-1/+1
| |/
* | Merge pull request #13885 from bas-vk/rpc_generic_pubsubPéter Szilágyi2017-05-036-55/+217
|\ \ | |/ |/| rpc: support subscriptions under custom namespaces
| * rpc: support subscriptions under custom namespacesBas van Kervel2017-04-256-55/+217
| |
* | README: add config to genesis.json (#14373)nicky g2017-05-031-0/+6
| | | | | | README: add config to genesis.json
* | cmd/puppeth, vendor: update ssh, manage server keys (#14398)Péter Szilágyi2017-05-0319-285/+701
| |
* | Merge pull request #14407 from karalabe/ethash-generation-racePéter Szilágyi2017-05-031-2/+4
|\ \ | | | | | | consensus/ethash: fix a timestamp update race
| * | consensus/ethash: fix a timestamp update racePéter Szilágyi2017-05-021-2/+4
| | |
* | | Merge pull request #14406 from karalabe/downloader-sensitive-codePéter Szilágyi2017-05-021-0/+4
|\ \ \ | |/ / |/| | eth/downloader: fix a potential issue against future refactors
| * | eth/downloader: fix a potential issue against future refactorsPéter Szilágyi2017-05-021-0/+4
| | |
* | | Merge pull request #14403 from fjl/console-numberPéter Szilágyi2017-05-021-3/+6
|\ \ \ | | | | | | | | console: avoid float64 when remarshaling parameters
| * | | console: avoid float64 when remarshaling parametersFelix Lange2017-05-021-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | With Go 1.7, encoding/json marshals float64 using scientific notation ("10e+6"), but Go's int and *big.Int decoders don't accept such numbers. This change disables use of float64 to avoid the problem.
* | | | Merge pull request #14399 from bas-vk/rpc-corsPéter Szilágyi2017-05-021-0/+5
|\ \ \ \ | |_|/ / |/| | | rpc: disable CORS if user has not specified a custom config
| * | | rpc: disable CORS if user has not specified custom configBas van Kervel2017-05-021-0/+5
|/ / /
* | | Merge pull request #14388 from bas-vk/cli-account-mngtPéter Szilágyi2017-05-023-70/+95
|\ \ \ | |/ / |/| | cmd/geth: reorganise account/wallet command/flags
| * | cmd/geth: reorganise account/wallet command/flagsBas van Kervel2017-04-283-70/+95
|/ /
* | whisper: switching to v5 + minor refactoring (#14387)gluk2562017-04-286-39/+139
| |
* | whisper: message format refactoring (#14335)gluk2562017-04-2714-232/+343
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * whisper: salt removed from AES encryption * whisper: padding format updated * whisper: padding test added * whisper: padding refactored, tests fixed * whisper: padding test updated * whisper: wnode bugfix * whisper: send/receive protocol updated * whisper: minor update * whisper: bugfix in test * whisper: updated parameter names and comments * whisper: functions renamed * whisper: minor refactoring
* | Merge pull request #14379 from farazdagi/fix/deadlock-in-node-waitPéter Szilágyi2017-04-251-0/+1
|\ \ | | | | | | node: fixes deadlock on Wait()
| * | node: fixes deadlock on Wait()Victor Farazdagi2017-04-251-0/+1
| |/
* | Merge pull request #14377 from karalabe/unify-network-idsPéter Szilágyi2017-04-2517-38/+38
|\ \ | |/ |/| cmd, eth, les, mobile: make networkid uint64 everywhere
| * cmd, eth, les, mobile: make networkid uint64 everywherePéter Szilágyi2017-04-2517-38/+38
|/
* Merge pull request #14350 from fjl/trie-iterator-skip-2Péter Szilágyi2017-04-2520-303/+477
|\ | | | | eth: add debug_storageRangeAt
| * eth: add debug_storageRangeAtFelix Lange2017-04-255-39/+201
| |
| * trie: add start key to NodeIterator constructorsFelix Lange2017-04-259-73/+146
| | | | | | | | | | | | | | | | | | The 'step' method is split into two parts, 'peek' and 'push'. peek returns the next state but doesn't make it current. The end of iteration was previously tracked by setting 'trie' to nil. End of iteration is now tracked using the 'iteratorEnd' error, which is slightly cleaner and requires less code.
| * trie: clean up iterator constructorsFelix Lange2017-04-259-31/+21
| | | | | | | | | | | | | | Make it so each iterator has exactly one public constructor: - NodeIterators can be created through a method. - Iterators can be created through NewIterator on any NodeIterator.
| * trie: rework and document key encodingFelix Lange2017-04-257-159/+121
| | | | | | | | | | 'encode' and 'decode' are meaningless because the code deals with three encodings. Document the encodings and give a name to each one.
| * trie: remove Key in MissingNodeErrorFelix Lange2017-04-183-17/+4
| | | | | | | | | | | | The key was constructed from nibbles, which isn't possible for all nodes. Remove the only use of Key in LightTrie by always retrying with the original key that was looked up.
* | Merge pull request #14372 from bas-vk/bootnodegenkeyPéter Szilágyi2017-04-251-0/+1
|\ \ | | | | | | cmd/bootnode: stop after generating/writing nodekey
| * | cmd/bootnode: stop after generating/writing nodekeyBas van Kervel2017-04-241-0/+1
| | |
* | | internal/ethapi: return empty arrays instead of null (#14374)bas-vk2017-04-241-3/+3
| | | | | | | | | | | | | | | | | | * internal/ethapi: return empty arrays instead of null * internal/ethapi: minor comments to avoid future regressions
* | | Merge pull request #14364 from fjl/core-remove-split-stat-tyPéter Szilágyi2017-04-243-15/+3
|\ \ \ | |/ / |/| | core, light: delete SplitStatTy, ChainSplitEvent (unused)
| * | core, light: delete SplitStatTy, ChainSplitEvent (unused)Felix Lange2017-04-223-15/+3
|/ /
* | Merge pull request #14339 from karalabe/faucet-block-banned-usersPéter Szilágyi2017-04-205-29/+109
|\ \ | | | | | | cmd/faucet: further user validations and bot protection
| * | cmd: integrate invisible recaptcha into puppethPéter Szilágyi2017-04-174-19/+52
| | |
| * | cmd/faucet: fix websocket double close/reopenPéter Szilágyi2017-04-172-2/+2
| | |
| * | cmd/faucet: add optional recaptcha validation supportPéter Szilágyi2017-04-173-13/+49
| | |
| * | cmd/faucet: double check user against the GH websitePéter Szilágyi2017-04-161-1/+12
| |/
* | Merge pull request #14357 from karalabe/nousb-flagPéter Szilágyi2017-04-204-4/+18
|\ \ | | | | | | cmd, node: add --nousb and node.Config.NoUSB to disable hw wallets
| * | cmd, node: add --nosub and node.Config.NoUSB to disable hw walletsPéter Szilágyi2017-04-204-4/+18
| | |
* | | Merge pull request #14358 from karalabe/wrong-genesis-descriptionPéter Szilágyi2017-04-201-1/+1
|\ \ \ | |/ / |/| | core: make genesis incompatibility error more explicit
| * | core: make genesis incompatibility error more explicitPéter Szilágyi2017-04-201-1/+1
|/ /
* | Merge pull request #13886 from bas-vk/rpc_blocknum_parsePéter Szilágyi2017-04-182-39/+86
|\ \ | |/ |/| rpc: improve BlockNumber unmarshal parsing
| * rpc: improve BlockNumber unmarshal parsingBas van Kervel2017-04-132-39/+86
| |
* | VERSION, params: begin 1.6.1 release cyclePéter Szilágyi2017-04-142-5/+5
| |
* | params: release Geth 1.6.0, Puppeth MasterPéter Szilágyi2017-04-141-4/+4
| |
* | Merge remote-tracking branch 'fjl/license-update-1.6'Péter Szilágyi2017-04-1446-79/+270
|\ \
| * | all: update license informationFelix Lange2017-04-1446-79/+270
| | |
* | | build: disable misspell, upstream bug prevents buildsPéter Szilágyi2017-04-141-1/+2
| | |
* | | eth: revert accidental ethash cache dir changePéter Szilágyi2017-04-141-0/+1
| | |
* | | consensus/ethash: close mmap before rename, windows limitationPéter Szilágyi2017-04-141-5/+8
| | |
* | | Merge pull request #14327 from karalabe/flag-group-fixesPéter Szilágyi2017-04-132-5/+14
|\ \ \ | | | | | | | | cmd/geth: update flag groups in the geth command usage
| * | | cmd/geth: update flag groups in the geth command usagePéter Szilágyi2017-04-132-5/+14
|/ / /
* | | Merge pull request #3786 from fjl/compiler-metadataPéter Szilágyi2017-04-132-76/+56
|\ \ \ | | | | | | | | common/compiler: add metadata output for solc > 0.4.6
| * | | common/compiler: add metadata output for solc > 0.4.6Steve Waldman2017-03-162-76/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Metadata is provided as JSON string, rather than as JSON object. This ensures that we can decode to a set of bytes that will be consistent with the swarm hash embedded in the code, without worrying about ambiguities of spacing, ordering, or escaping.
* | | | Merge pull request #14326 from karalabe/launchpad-go-1.8Péter Szilágyi2017-04-133-9/+9
|\ \ \ \ | |_|/ / |/| | | build: bump launchpad builds to Go 1.8.1
| * | | build: bump launchpad builds to Go 1.8.1Péter Szilágyi2017-04-133-9/+9
| | | |
* | | | trie: implement unionIterator (#14312)Nick Johnson2017-04-132-36/+199
| | | |
* | | | swarm/api: better name resolver handling (#3754)holisticode2017-04-134-16/+53
|/ / / | | | | | | Fixes #3608
* | | Merge pull request #14323 from fjl/ethash-verify-headers-fixPéter Szilágyi2017-04-132-85/+52
|\ \ \ | | | | | | | | consensus/ethash: simplify concurrency in VerifyHeaders
| * | | consensus/ethash: simplify concurrency in VerifyHeadersFelix Lange2017-04-131-81/+48
| | | | | | | | | | | | | | | | | | | | This change removes a convoluted use of sync/atomic from VerifyHeaders. It also fixes the annoying error about future blocks.
| * | | core: don't import genesis block in TestDAOForkRangeExtradataFelix Lange2017-04-131-4/+4
| | | | | | | | | | | | | | | | The genesis block doesn't have a valid ancestor.
* | | | cmd/utils, node: remove unused solc references and improve RPC config (#14324)bas-vk2017-04-1315-67/+38
| | | | | | | | | | | | | | | | | | | | Currently http cors and websocket origins are a comma separated string in the config object. These are replaced with string arrays that are more expressive in case of a config file.
* | | | Merge pull request #14320 from karalabe/rlpdump-single-flagPéter Szilágyi2017-04-121-0/+4
|\ \ \ \ | |/ / / |/| | | cmd/rlpdump: support dumping only the first entity
| * | | cmd/rlpdump: support dumping only the first entityPéter Szilágyi2017-04-121-0/+4
| | | |
* | | | cmd/geth: add --config file flag (#13875)Felix Lange2017-04-1255-648/+6615
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * p2p/discover, p2p/discv5: add marshaling methods to Node * p2p/netutil: make Netlist decodable from TOML * common/math: encode nil HexOrDecimal256 as 0x0 * cmd/geth: add --config file flag * cmd/geth: add missing license header * eth: prettify Config again, fix tests * eth: use gasprice.Config instead of duplicating its fields * eth/gasprice: hide nil default from dumpconfig output * cmd/geth: hide genesis block in dumpconfig output * node: make tests compile * console: fix tests * cmd/geth: make TOML keys look exactly like Go struct fields * p2p: use discovery by default This makes the zero Config slightly more useful. It also fixes package node tests because Node detects reuse of the datadir through the NodeDatabase. * cmd/geth: make ethstats URL settable through config file * cmd/faucet: fix configuration * cmd/geth: dedup attach tests * eth: add comment for DefaultConfig * eth: pass downloader.SyncMode in Config This removes the FastSync, LightSync flags in favour of a more general SyncMode flag. * cmd/utils: remove jitvm flags * cmd/utils: make mutually exclusive flag error prettier It now reads: Fatal: flags --dev, --testnet can't be used at the same time * p2p: fix typo * node: add DefaultConfig, use it for geth * mobile: add missing NoDiscovery option * cmd/utils: drop MakeNode This exposed a couple of places that needed to be updated to use node.DefaultConfig. * node: fix typo * eth: make fast sync the default mode * cmd/utils: remove IPCApiFlag (unused) * node: remove default IPC path Set it in the frontends instead. * cmd/geth: add --syncmode * cmd/utils: make --ipcdisable and --ipcpath mutually exclusive * cmd/utils: don't enable WS, HTTP when setting addr * cmd/utils: fix --identity
* | | | Merge pull request #14322 from karalabe/puppeth-new-configsPéter Szilágyi2017-04-121-249/+249
|\ \ \ \ | | | | | | | | | | cmd/puppeth: format dashboard html, update syncmode flags
| * | | | cmd/puppeth: format dashboard html, update syncmode flagsPéter Szilágyi2017-04-121-249/+249
|/ / / /
* | | | consensus, core, ethstats: use engine specific block beneficiary (#14318)Péter Szilágyi2017-04-1218-26/+76
| | | | | | | | | | | | | | | | | | | | | | | | * consensus, core, ethstats: use engine specific block beneficiary * core, eth, les, miner: use explicit beneficiary during mining
* | | | consensus/clique, internal/web3ext: support hash based API queries (#14321)Péter Szilágyi2017-04-126-32/+66
|/ / / | | | | | | | | | | | | | | | * consensus/clique, internal/web3ext: support hash based API queries * consensus/clique: make RPC return types public
* | | Merge pull request #14311 from Arachnid/tracingNick Johnson2017-04-121-22/+62
|\ \ \ | | | | | | | | internal/ethapi: Add support for fetching information about the current call in JS traces
| * | | internal/ethapi: Add support for fetching information about the current call ↵Nick Johnson2017-04-111-22/+62
| | | | | | | | | | | | | | | | in JS traces
* | | | build: create deb source for Ubuntu Zesty (#14316)Péter Szilágyi2017-04-121-1/+1
| | | |
* | | | swarm/api: FUSE read-write support (#13872)Zahoor Mohamed2017-04-1215-362/+1693
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Moved fuse related code in a new package, swarm/fuse - Added write support - Create new files - Delete existing files - Append to files (with limitations) - More test coverage
* | | | cmd/swarm: add --password (#3748)Victor Farazdagi2017-04-121-6/+18
| | | |
* | | | params: updated testnet bootnodes (#14310)Jamie Pitts2017-04-111-3/+3
| | | |
* | | | cmd/puppeth: your Ethereum private network manager (#13854)Péter Szilágyi2017-04-1170-11/+21105
| | | |