Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix N being overwritten by BigInt.Div functionality #2

Closed
wants to merge 1 commit into from

Conversation

vessenes
Copy link

Div modifies the object that calls it as well as returns the result. N was being overwritten with the div result and eventually (quickly) went to zero.

I'm not super savvy to go, so there may be a more canonical way to do this, like e.g. calling dag.xn.Div, which didn't work for me. In this case, though, pow is not used again in the function and seemed safe to overwrite.

@obscuren
Copy link
Contributor

Thanks for your contribution but I have to reject your commit. You fixed something that had already been fixed in d895f83

I'm not sure if you are aware but ethereum is still in its very early development (code wise). Dagger is also subject to change (spec wise) so I wouldn't bother with it too much :)

@obscuren obscuren closed this Jan 10, 2014
@vessenes
Copy link
Author

No worries!

@zelig zelig mentioned this pull request Jan 5, 2015
obscuren added a commit that referenced this pull request Feb 13, 2015
…generation

Correct ECIES shared key length check
@frozeman frozeman mentioned this pull request Mar 12, 2015
Closed
@ghost ghost mentioned this pull request May 11, 2015
@ghost ghost mentioned this pull request Dec 13, 2015
@fluidvoice fluidvoice mentioned this pull request May 21, 2016
7 tasks
prestonvanloon pushed a commit to prestonvanloon/go-ethereum that referenced this pull request Jan 15, 2018
cdetrio pushed a commit to cdetrio/go-ethereum that referenced this pull request Feb 24, 2018
Latest changes from go-ethereum
MetadiumRelease referenced this pull request in METADIUM/go-metadium Jul 27, 2018
Master

Approved-by: Uh Sado <sadoc@metadium.com>
shiotoli pushed a commit to CortexFoundation/MinerInterface that referenced this pull request Aug 14, 2018
meowsbits referenced this pull request in meowsbits/go-ethereum Nov 16, 2020
README.md:remove classic-geth column since it's obsoleted
recmo pushed a commit to recmo/go-ethereum that referenced this pull request Feb 17, 2021
shoenseiwaso added a commit to curvegrid/go-ethereum that referenced this pull request Jul 22, 2021
maoueh referenced this pull request in streamingfast/go-ethereum Aug 13, 2021
maoueh referenced this pull request in streamingfast/go-ethereum Aug 13, 2021
fix: changed geth to bor for docker
maoueh referenced this pull request in streamingfast/go-ethereum Aug 13, 2021
Co-authored-by: wangsai <wangsai@huobi.com>
rohansbansal pushed a commit to rohansbansal/go-ethereum that referenced this pull request Oct 27, 2021
Add simple helper for writing/reading blocks from file
maoueh referenced this pull request in streamingfast/go-ethereum Nov 12, 2021
* implement block process part of light sync

* add difflayer protocol

* handle difflayer and refine light processor

* add testcase for diff protocol

* make it faster

* allow validator to light sync

* change into diff sync

* ligth sync: download difflayer (#2)

* ligth sync: download difflayer

Signed-off-by: kyrie-yl <lei.y@binance.com>

* download diff layer: fix according to the comments

Signed-off-by: kyrie-yl <lei.y@binance.com>

* download diff layer: update

Signed-off-by: kyrie-yl <lei.y@binance.com>

* download diff layer: fix accroding comments

Signed-off-by: kyrie-yl <lei.y@binance.com>

Co-authored-by: kyrie-yl <lei.y@binance.com>

* update light sync to diff sync

* raise the max diff limit

* add switcher of snap protocol

* fix test case

* make commit concurrently

* remove peer for diff cache when peer closed

* consensus tuning

* add test code

* remove extra message

* fix testcase and lint

make diff block configable

wait code write

fix testcase

resolve comments

resolve comment

* resolve comments

* resolve comments

* resolve comment

* fix mistake

Co-authored-by: kyrie-yl <83150977+kyrie-yl@users.noreply.github.com>
Co-authored-by: kyrie-yl <lei.y@binance.com>
dindinw added a commit to dindinw/go-ethereum that referenced this pull request Dec 12, 2021
eth/tracers: fix go-duktape warning
tony-ricciardi pushed a commit to tony-ricciardi/go-ethereum that referenced this pull request Jan 20, 2022
* Expose mobile http server

* Must set vhosts

* Add package.json

* Try postinstall

* I am silly

* Add .aar to package

* don't make on install

* Switched to new mobile mining app.

* Fixed a bug.

* Cleaned up some code and added comments.

* Added todo and reformatted.

* Small changes.

* Expose personal

* add ipc

* new version

* remove comments

* new build
tony-ricciardi pushed a commit to tony-ricciardi/go-ethereum that referenced this pull request Jan 20, 2022
When paying gas fees in C$ or any other non-native currency

1. Charge the user upfront for three things
   - balanceOf - to determine their balance in that currency)
   - debitFrom - to debit gas from their account
   - creditTo - to credit miner at the end

2. At the end if the fee to be refunded is less than the transaction fee
to refund then pass that fee to the miner.

Prior to this diff, ethereum#1 was not happening properly and ethereum#2 was not
happening at all.

As a more concrete example, if user passes 100K C$ wei as gas amount
for a send tranaction then we will deduct 2195 to determine their
balance in C$, then we will deduct 10,000 for a debitFrom transaction
and another 10K for a creditTo transaction.
So, the available gas (`st.gas`) would be
100,000 - 22,195 = 77,805 for rest of the transaction.

At the end, we will pay the gas fees to the miner, which in this case is
22,195 + 21,000 (send fee) = 43,195, at the end, 56,805 gas is left, out
of which 10, 000 is further deducted and then 46,805 is refunded to the
sender and 43, 195 + 10, 000 is sent to the miner.

Sample logs with gas price = 999
```
DEBUG[03-21|18:18:51.003|core/state_transition.go:252]           debitGas                                 amount=99900000 gasCurrency=0x13f252CFCd0AED2FBAdAE507AA812aa1De01d8a4
TRACE[03-21|18:18:51.003|core/state_transition.go:262]           debitGas                                 rootCaller=0 customTokenContractAddress=0x13f252CFCd0AED2FBAdAE507AA812aa1De01d8a4 gas=10000 value=0 transactionData=0x362a5f80000000000000000000000000fee1a22f43beecb912b5a4912ba87527682ef0fc0000000000000000000000000000000000000000000000000000000005f45a60
DEBUG[03-21|18:18:51.003|core/state_transition.go:273]           debitGas successful                      ret=0x00000000000000000000000000000000000000000000006c4fd1ee2454c9dd59 leftoverGas=2351
TRACE[03-21|18:18:51.003|core/state_transition.go:192]           buyGas after debitGas                    upfrontGasCharges=22195 available gas=77805   initial gas=100000  gasCurrency=0x13f252CFCd0AED2FBAdAE507AA812aa1De01d8a4
TRACE[03-21|18:18:51.003|core/state_transition.go:463]           Refunding gas to sender                  sender=0xfeE1a22F43BeeCB912B5a4912ba87527682ef0fC refundAmount=46758195 gas Currency=0x13f252CFCd0AED2FBAdAE507AA812aa1De01d8a4
DEBUG[03-21|18:18:51.003|core/state_transition.go:252]           creditGas                                amount=46758195 gasCurrency=0x13f252CFCd0AED2FBAdAE507AA812aa1De01d8a4
TRACE[03-21|18:18:51.003|core/state_transition.go:262]           creditGas                                rootCaller=0 customTokenContractAddress=0x13f252CFCd0AED2FBAdAE507AA812aa1De01d8a4 gas=10000 value=0 transactionData=0x9951b90c000000000000000000000000fee1a22f43beecb912b5a4912ba87527682ef0fc0000000000000000000000000000000000000000000000000000000002c97933
DEBUG[03-21|18:18:51.004|core/state_transition.go:273]           creditGas successful                     ret=0x00000000000000000000000000000000000000000000006c4fd1ee245793568c leftoverGas=2057
TRACE[03-21|18:18:51.004|core/state_transition.go:425]           Paying gas fees to miner                 unrefundedGas=0 gas used=53195 gasFeesForMiner=53195 miner Fee=53141805
TRACE[03-21|18:18:51.004|core/state_transition.go:428]           Paying gas fees to miner                 miner=0xfeE1a22F43BeeCB912B5a4912ba87527682ef0fC minerFee=53141805 gas Currency=0x13f252CFCd0AED2FBAdAE507AA812aa1De01d8a4
```
tony-ricciardi pushed a commit to tony-ricciardi/go-ethereum that referenced this pull request Jan 20, 2022
* Make tx pool fee check logic match the logic in state_transition.go

* Improve non-native currency fee tx handling (ethereum#2)

Improves multi-currency fee support in the tx pool queue and pending lists.
Previously when paying for a tx in a non-native currency, the balance of the account
would only be checked when inserting the transaction into the tx pool, but as the
balance of the account can change after the tx is admitted, transactions are periodically
checked for validity in `txList.Filter`. This PR changes txList to properly track balances in
non-native currencies. This also adds support for checking the gas price minimum in the txList.

This PR also converts gas prices to CELO prior to comparing if a new transaction at the same
nonce should override an old transaction at the same nonce. It also refactors calculations
of `tx.Fee()`

* Fix nil pointer exception in txList Filter

This occurred because gasPriceMinimums contains the gasPriceMinimum for
every fee currency, not just the fee currencies of the transfer. This
changes the iteration to go through each gasPriceFloor and then get the
gasPriceMinimum from the fee currency associated with the floor. This works
because gasPriceMinimums contains every whitelisted fee currency and the tx
has already been validated to pay in a fee currency.

* Fix panic in 'ConvertToGold()'

Co-authored-by: Joshua Gutow <joshua@celo.org>
Co-authored-by: Joshua Gutow <joshua@clabs.co>
asn-d6 referenced this pull request in asn-d6/go-ethereum Feb 20, 2022
Implement `DATAHASH` opcode and sharding fork
Inphi pushed a commit to Inphi/go-ethereum that referenced this pull request Jun 14, 2022
@schonex schonex mentioned this pull request Sep 19, 2022
joshuacolvin0 pushed a commit to joshuacolvin0/go-ethereum that referenced this pull request Jan 4, 2023
neraty pushed a commit to gnosis/go-ethereum that referenced this pull request Mar 13, 2023
neraty pushed a commit to gnosis/go-ethereum that referenced this pull request Apr 3, 2023
sbellem pushed a commit to sbellem/go-ethereum that referenced this pull request Jul 25, 2023
This commit introduces the ciphertext registry, with its three main
components:
 * protected storage space for persistent registry entries
 * ciphertext handles
 * in-memory ciphertext registry that persist for the lifetime of the
   transaction/call

The protected storage space is implemented as a separate contract,
linked to the actual one. When we create a contract, we take its address
and run it through SHA256 to get the address of the corresponding
protected storage contract. See more in evm.go, Create().

A ciphertext handle is the SHA256 hash of a ciphertext. It is generated
by the call to the `verifyCiphertext()` precompiled contract.
If a handle is stored in contract storage, we persist the actual
ciphertext in protected storage, along with some metadata. One piece of
metadata is the reference count. In essense, if a handle is stored in
contract storage via SSTORE, the refcount is bumped by 1. If a handle is
overwritten, the refcount is reduced by 1. Additionally, we
automatically verify any handle that points to a ciphertext on SLOAD.

Verifying a ciphertext essentially means storing it in an in-memory map
from hash(ciphertext) => {ciphertext, verified_at_stack_depth}. A
ciphertext is verified only for a particular stack depth and further on.
On the RETURN opcode, we remove entries from the map that are no longer
verified. More information to follow on that approach.

More features and code cleanup will be added in future commits.
spencer-tb pushed a commit to spencer-tb/go-ethereum that referenced this pull request Aug 4, 2023
core/vm/contracts: Fix beacon root pre-compile address by adding it to cancun contracts
nikicat pushed a commit to nikicat/go-ethereum that referenced this pull request Sep 11, 2023
zksync fix V value in ValidateSignatureValues
cuiweixie pushed a commit to cuiweixie/go-ethereum that referenced this pull request Nov 2, 2023
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Freddy Caceres <facs95@gmail.com>
jakub-freebit added a commit to fblch/go-ethereum that referenced this pull request Jan 23, 2024
allnil pushed a commit to allnil/go-ethereum that referenced this pull request Feb 24, 2024
* add description to ReadMe

* typo
atenjin pushed a commit to alt-research/go-ethereum that referenced this pull request Apr 4, 2024
This commit squashes the op-geth fork history into a more maintainable
diff for rebasing upon upstream geth.

reference-optimistic-geth changes (origins of op-geth in early Bedrock
development stage):
- Deposit TX Type
- Enable deposit tx in EVM/tx pool
- Change deposit nonce to not be the max nonce
- Extend PayloadAttributesV1 with a Transactions field
- Force deposits at the start of each L2 block
- Fix height check
- noTxPool flag, reproduce block in verifier mode without tx pool interference
- Fix RPC json marshalling (ref op-geth PR 4)
- Deposit txs block height check in block body validation (ref op-geth PR 5)
- core: do not try to reinject deposit txs into tx-pool (ref-op-geth PR 6)
- deposit source hash field instead of L2 block height and tx index combination
- Include invalid deposits, rewind state, but always persist mint (ethereum#10)
- Provide gas to Call/Create in deposit transactions (ethereum#12)
- Add docker builds (ref-op-geth PR 16, 17)
- Don't panic on deposit transaction signature values or chain ID (ref-op-geth PR 18)
- core: Add version to DepositTx (ref-op-geth PR 19)
- Enable Geth build/lint/test in CircleCI (ref-op-geth PR 23)
- core: Include guaranteed gas in the gas pool (ref-op-geth PR 21)
- core: handle base fee, l1 availability fee, tx fee (ref-op-geth PR 27)
- fix: deposit tx hash
- fix l1 fee cache, rpc, tracing and tx pool
- core: remove deposit-tx sub-type (a.k.a. deposit version byte)
- eth/catalyst: allow engine user to reorg own chain
- miner: restore ability to reorg deep as block builder
- params: print Optimism consensus type in banner
- core/types: remove unused protected() method, see upstream PR 23376
- core: do not mutate original balance value in tx pool l1 cost adjustment
- core: subtract deposit gas from pool, so other txs do not use the same gas. And fail tx processing if deposits reach gas limit
- core/types: deposits do not tip, avoid basefee subtraction
- Unmeter the L1 Attributes Transaction
- miner: handle force tx errors as critical, clean up diff
- ci: Switch branch
- eth,miner: return STATUS_INVALID when failing to process forced transactions in request (ref-op-geth PR 40)
- verifier: forward tx to sequencer based on flag
- txpool: add flag to disable tx gossip (ref-op-geth PR 42)
- Add op-geth version in addition to geth version (ref-op-geth PR 43)
- ci: CircleCI improvements (ref-op-geth PR 44)
- Rename to op-geth
- Build latest tag on optimism branch

op-geth changes:
- Expose cache config in simulated backend (ethereum#2)
- Add EIP-1559 parameters
- eth/catalyst: update payload id computation (#1)
- make eip1559 configurable (ethereum#4)
- post-merge network should not log warnings about missing transition information (ethereum#5)
- Make the simulator more configurable (ethereum#6)
- fix OPB-6 - IsDepositTx check instead of artificial nonce value check (ethereum#7)
- Simulated backend - enable proof of stake consensus type and fix performance issue (ethereum#8)
- accounts: simulated backend consensus engine option and immediate tx indexing
- consensus/beacon: recognize all blocks as reached TTD with 0 TTD in chain config
- Add --rollup.historicalhttp CLI flag and fix backend iface
- Flags and interfaces for historical RPC requests (ethereum#12)
- Redirect historical RPC requests (ethereum#13)
- Use the pre-existing ethereum.NotFound error (ethereum#18)
- Add historical endpoint to TraceBlockByNumber and TraceBlockByHash (ethereum#19)
- Add historical endpoint to TraceTransaction (ethereum#20)
- Add historical endpoint to TraceCall (ethereum#21)
- optimism: fee params from info txi, update l1 cost func GPO params read (ethereum#15)
- add hardcoded addresses for fee payouts (ethereum#23)
- dynamic gas limit via engine API (ethereum#22)

Co-authored-by: Matthew Slipper <me@matthewslipper.com>
Co-authored-by: Joshua Gutow <jgutow@oplabs.co>
Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
siddharth0a pushed a commit to siddharth0a/go-ethereum that referenced this pull request Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants