Giter VIP home page Giter VIP logo

Comments (29)

djrtwo avatar djrtwo commented on June 2, 2024 2

Cool I just saw that the VIP got approved. Congrats!

from casper.

mkeen avatar mkeen commented on June 2, 2024 1

@djrtwo Your proposed solution is syntactically elegant, but from what I can see, it's going to require an enhancement to Vyper. Vyper's RLPList function sets the size of
all byte array members equal to the size of the entire RLPList
.

For the purposes of decoding incoming data, Vyper's RLPList requires as arguments a bytearray, and a serial list of types -- the latter is used by RLPList to decode the former into an array of native objects. It is used like this by Casper:

values = RLPList(vote_msg, [int128, bytes32, int128, int128, bytes])

The above doesn't expose any way to let Vyper's RLPList know how many bytes will be in the byte array members, so (again, linked above) RLPList just allocates a number of bytes equal to the size allocated for the entire message, in our case, 1024.

To summarize, due to the current implementation of RLPList in Vyper, the size of the variable sig referenced below must be equal to the size of the entire message (vote_msg) it's contained in.

def vote(vote_msg: bytes <= 1024):
# Get hash for signature, and implicitly assert that it is an RLP list
# consisting solely of RLP elements
msg_hash: bytes32 = extract32(raw_call(self.MSG_HASHER, vote_msg, gas=self.MSG_HASHER_GAS_LIMIT, outsize=32), 0)
# Extract parameters
values = RLPList(vote_msg, [int128, bytes32, int128, int128, bytes])
validator_index: int128 = values[0]
target_hash: bytes32 = values[1]
target_epoch: int128 = values[2]
source_epoch: int128 = values[3]
sig: bytes <= 1024 = values[4]

I've looked into making some enhancements to the Vyper RLPList implementation, but it's a fairly involved undertaking, and I'd need to understand more about related project pyrlp.

Requesting a suggestion on how I should proceed.

from casper.

djrtwo avatar djrtwo commented on June 2, 2024 1

Thanks for the deep dive! I was unaware. We might decide to truncate or something, but I am going to discuss with the formal verification team that is working with us. Leaving this open for now until we decide on a move forward.

from casper.

vs77bb avatar vs77bb commented on June 2, 2024 1

@mkeen @djrtwo Just 10-day-snoozed Gitcoin Bot, appreciate the request and patience as we work out the kinks 🙂

from casper.

hrishikeshio avatar hrishikeshio commented on June 2, 2024

@djrtwo Would it be better to add this enforcement in validate_signature()?

from casper.

djrtwo avatar djrtwo commented on June 2, 2024

The type declaration should handle the enforcement. I was thinking we just make the type declaration the following anywhere we are referencing the sig which is a number of places at this point (including validate_signature)

sig: bytes <= MAX_SIGNATURE_LENGTH = ...

from casper.

gitcoinbot avatar gitcoinbot commented on June 2, 2024

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 200.0 DAI (200.0 USD @ $1.0/DAI) attached to it.

from casper.

gitcoinbot avatar gitcoinbot commented on June 2, 2024

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 7 months, 2 weeks ago.
Please review their action plans below:

1) mkeen has started work.

Learn more on the Gitcoin Issue Details page.

from casper.

gitcoinbot avatar gitcoinbot commented on June 2, 2024

@mkeen Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

from casper.

mkeen avatar mkeen commented on June 2, 2024

I am still working on this. Submitted a proposal to make this possible with a change to Vyper.

from casper.

gitcoinbot avatar gitcoinbot commented on June 2, 2024

@mkeen Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

from casper.

mkeen avatar mkeen commented on June 2, 2024

@djrtwo Can I get a 10 day snooze on this? RLPList is undergoing heavy changes RN.

from casper.

djrtwo avatar djrtwo commented on June 2, 2024

@mkeen I can't snooze as I'm not the founder. will have to ask @gdipri01

from casper.

mkeen avatar mkeen commented on June 2, 2024

Thanks!

from casper.

vs77bb avatar vs77bb commented on June 2, 2024

Hi @mkeen just checking in, is this one still pending? Hope you are doing well 🙂

from casper.

djrtwo avatar djrtwo commented on June 2, 2024

This is blocked by the implementation of a VIP vyperlang/vyper#818

It appears to be in their "final countdown" before beta. So I expect it to be finished in the relative short term

from casper.

gitcoinbot avatar gitcoinbot commented on June 2, 2024

@mkeen Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

from casper.

gitcoinbot avatar gitcoinbot commented on June 2, 2024

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


@mkeen due to inactivity, we have escalated this issue to Gitcoin's moderation team. Let us know if you believe this has been done in error!

  • warning (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

from casper.

mkeen avatar mkeen commented on June 2, 2024

Hi @vs77bb yes still pending! But I am keeping an eye on it.

from casper.

vs77bb avatar vs77bb commented on June 2, 2024

Awesome. Thanks for the feedback!

from casper.

kuhnchris avatar kuhnchris commented on June 2, 2024

Hi there everyone. Is this issue still blocked due to your dependencies?
Let me know if we can help you in any ways!

Thanks!

from casper.

hrishikeshio avatar hrishikeshio commented on June 2, 2024

@kuhnchris The repo is deprecated. No commits since Jun 2018.

from casper.

kuhnchris avatar kuhnchris commented on June 2, 2024

Well, there are still 200$ in DAI stashed in the bounty from Greg. If this repository is deprecated he should cancel the bounty so he can at least get his funds back. We'll try to mail him, thanks for the info!
May I note that if this is deprecated that maybe the repository should be changed to read-only, respectively archived?

Thanks!
Chris

from casper.

mkeen avatar mkeen commented on June 2, 2024

The repo isn't deprecated as far as I know. It would be nice to at least partially claim the bounty, since I did a bunch of analysis and spec'ed out a fix upstream. Just a thought :)

from casper.

kuhnchris avatar kuhnchris commented on June 2, 2024

@djrtwo @hrishikeshio your calls. cc @vs77bb

from casper.

mkeen avatar mkeen commented on June 2, 2024

@djrtwo @hrishikeshio @vs77bb LMK. I think it's only fair.

from casper.

hrishikeshio avatar hrishikeshio commented on June 2, 2024

Its deprecated according to https://github.com/ethereum/casper/blob/master/README.md.
Anyways, I am not the decision maker or bounty sponsorer. So its not my decision. good luck.

from casper.

mkeen avatar mkeen commented on June 2, 2024

Yikes.

from casper.

gitcoinbot avatar gitcoinbot commented on June 2, 2024

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 200.0 DAI (200.0 USD @ $1.0/DAI) has been submitted by:

  1. @mkeen

@gdipri01 please take a look at the submitted work:

  • (Link Not Provided) by @mkeen

from casper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.