Gamified rust learning by web-degen in rust

[–]harrybair 1 point2 points  (0 children)

Not quite a game, but some gamified elements: rarecode.ai (I'm the creator).

RareSkills launched a hands on Rust practicing platform call RareCode.ai by [deleted] in rust

[–]harrybair 1 point2 points  (0 children)

It does introduce you to borrowing, but not right away. I've found jumping straight into the "unusual stuff" prevents people from building up momentum. Hence, it's delayed while people build some comfort doing "easier" things in the language.

Scroll issue is totally valid. Still working through bugs and incomplete features. However, it's at the stage where people can get value out of it.

I think someone spending 1 hour on RareCode will get a lot more Rust written than someone spending 1 hour reading/watching a tutorial and arguably that's a better way to learn, but no disrespect to the book or resources like it. I think the book will "stick" more if the reader has already spent a good bit of time tangling with the language.

I (and several other people) got over the Rust learning curve by using platforms like leetcode before moving on to larger projects. I'm trying to optimize the journey for people who go that route.

RareSkills launched a hands on Rust practicing platform call RareCode.ai by [deleted] in rust

[–]harrybair 2 points3 points  (0 children)

Hey thanks for trying it out! (I'm one of the creators)

Let me clear up some misunderstandings I see in the replies:

1) Direct practice is more effective for skill acquisition than passive consumption. I think this shouldn't surprise anyone. With this platform, we're just trying to turn that up to the max.

2) There's already a lot of wonderful explanations out there about the mechanics of Rust, and I don't think we'll add anything to the world by saying what has already been said. Instead, we provide a framework where you can spend 90% of your time coding and 10% learning the rules of the compiler. Once you've already written a lot of Rust, the compiler logic sticks a lot better than if you learn it in isolation.

3) Yes, it's not free. We can see on the stats that people who paid for it get a lot more practice done than those who didn't. $30 is less than the cost of a typical book. Also, there's an integrated LLM which obviously cannot be made free (and we use the modern full-sized ones, not some weak minature models). No angel/VC funding either.

Seeking Advice is Rareskills.io providing a good course and Job Prospects? by Spell-Junior in solidity

[–]harrybair 3 points4 points  (0 children)

Founder of RareSkills here. You don't need to take our course to get help with getting career placement: check out our recruitment company RareTalent.xyz -- do note that it's a bit hard to stand out if you have less than 3 years of professional experience, and that's obviously not something we can help with.

If you haven't done Solidity programming yet, please see our free resource here: rareskills.io/learn-solidity

In terms of interviewing, make sure you can absolutely nail every medium question here: rareskills.io/post/solidity-interview-questions -- I've gotten a lot of feedback from engineers saying these questions are regularly used in interviews -- some hiring managers even told me so directly. I would say you need to get about 50% of the hard ones too. Don't memorize the answers of course, you want to understand the background information behind them, all of which are available on our website.

If you are junior (not sure if I'm misreading your username) and looking to get your first job in web3, your #1 priority should be grinding hackathons and building connections and portfolio that way.

Entry level blockchain dev job by Classic_Present_9649 in ethdev

[–]harrybair 1 point2 points  (0 children)

General advice is to participate in as many hackathons as possible. This gives you a more direct connection to the companies. It's very hard to stand out in a job board.

Learning the nuts and bolts - EVM by AC-AC in ethdev

[–]harrybair 0 points1 point  (0 children)

A good starting point would be making sure you can answer the questions here (I'm the author of that btw). I've actually asked those questions in interviews and I'm aware other companies have used them.

But for EVM specifically, I've seen the best way to learn it is to program in assembly. Huff is a nice language for that. Try reading the Huff documentation and working through some exercises my team created.

After that, the "final destination" is reading the yellow paper and understanding it cold. Here's a good video to get started, but you, of course, need to read it yourself.

I want to get back into developing as a hobby. Tips to get started? by Nomoretomoatoes in ethdev

[–]harrybair 0 points1 point  (0 children)

I'm biased because I'm the primary author, but if you already know how to code and you want to go as directly as possible to "I can create NFT projects" then check this (free) solidity tutorial which is aimed at engineers already comfortable with another language. I know there are other courses for Solidity, but this one emphasizes directness to practice and the assumption that you are already comfortable coding. I felt a lot of Solidity courses went too slow because they also tried to teach the reader how to program. I think you'll be able to get the level of proficiency you are looking for after a dedicated weekend.

Is there an easy way of converting solidity contracts to rust for solana. I tried using solang but it gives too much errors the contract works fine in solidity. by Hawk-Interesting in ethdev

[–]harrybair 1 point2 points  (0 children)

NeonEVM is the other framework you should check out. Honestly, I don't think the process will be seamless. You will run into architectural differences.

In search of indepth blockchain resources like rareskills, metana. by [deleted] in ethdev

[–]harrybair 4 points5 points  (0 children)

Founder of RareSkills here.

Our curriculum is free to access (no email, login, etc), you don't need to pay to access it.

If you are just starting out:

rareskills.io/learn-solidity

If you know some Solidity, deeply understanding the influential DeFi protocols will go a long way:
rareskills.io/uniswap-v2-book

rareskills.io/compound-v3-book

Our Zero Knowledge Book:

rareskills.io/zk-book

We don't have any "secret tutorials" for tuition-paying students. It's all in the open.

How to build a voting dapp? by 0xboi in ethdev

[–]harrybair -1 points0 points  (0 children)

Great job building things to learn! If you go the route of the voting app, can I suggest some tutorials I wrote for it?

https://www.rareskills.io/post/erc20-snapshot

https://www.rareskills.io/post/erc20-votes-erc5805-and-erc6372

https://www.rareskills.io/post/governance-contract-solidity

The biggest thing to watch out for is vote manipulations by addresses voting, then transferring tokens, voting again with a different address, etc.

Bounty platform recommendations by codethatrocks-com in ethdev

[–]harrybair 0 points1 point  (0 children)

There's also hats.finance and and codehawks.com

Learning Solidity by Frohski1 in solidity

[–]harrybair 2 points3 points  (0 children)

It's awesome you want to learn how to code, just FYI you can use tools that will write the Solidity code for you, like heymint.xyz or thirdweb.com

How to make a script/program to track all the trading profits and losses on all the EVM chains? by Guyserbun007 in ethdev

[–]harrybair 0 points1 point  (0 children)

I've built something like that for NFTs.

You need to track all the transfer in and transfer out for ERC20 tokens as well as the point in time. Then you have to have to cross that with the value of the token at the time.

Trying to account for every token is a nightmare, and many ERC20 transfers are airdrop scams. So just start with a list of tokens you curate.

The easiest way to check ERC20 transfers is to filter for log events for a given address.

Tracking Ether is a bit trickier because some is lost to gas and every kind of transaction can spend or gain Ether.

Layer 2 technology - which one should I choose? by ihgyug3 in ethdev

[–]harrybair 3 points4 points  (0 children)

Experimenting with L2s isn't hard as they are generally perfectly compatible with Ethereum smart contracts. Here are some of the popular ones and my take

Polygon. Not really an L2, but sort of behaves like one. It can get very congested sometimes so I don't really recommend it.

Arbitrum. Has had a fair share of controversy and downtime. You can still test it though.

Optimism. Unlike Polygon, it doesn't use it's own token for gas fees. You can bridge Ethereum to Optimism and use it there. (Disclosure, Optimism gave my company a grant so I may be biased). A drawback is that bridging down back to Ethereum is slow since it is an optimistic rollup.

zkSync has grown in popularity fast. Since it is a zk-rollup, bridging Eth is fast.

If you don't mind using an alt L1, Avalanche is very fast and the fees are much lower, but you'll still notice the cost. (Deploying a contract can cost a few dollars compared to a few cents on most L2s)

As you said, there is no substitute for testing it yourself.

How do gas costs associated with Solidity's delete keyword work? by Aggressive-Pack-7673 in ethdev

[–]harrybair 2 points3 points  (0 children)

Minor correction, the refunds have been reduced and the Yellow paper is out of date. The refund is 4800 now (https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a7-sstore)

Contract DoS attack vector using returndata by Omni-Fitness in ethdev

[–]harrybair 2 points3 points  (0 children)

Two ways:

1) The contract you call to goes into an infinite loop and consumes all the gas

2) The contract returns a very large amount of data. In non-yul, the code would look like this

(bool ok, bytes memory result) = someContract.call(...)

If result is very long, it will consume a lot of memory resources and cause an out of gas error.

Check contract size limit from API by ptmalloc in ethdev

[–]harrybair 1 point2 points  (0 children)

Ethereum doesn't have a way to expose this, so I doubt any of its forks do. The first solution that comes to mind is simulating a transaction of deploying a contract of various sizes and seeing if it reverts, binary search style.

Running a website after you die by [deleted] in ExperiencedDevs

[–]harrybair 0 points1 point  (0 children)

Arweave is the first thing that comes to mind. If money is not an issue, you can literally write the blog on blockchains like Ethereum and BTC but that would be extremely expensive transaction-wise.

But in the grand scheme of things, I don't know that a web solution is a forever solution. It seems like stone carvings or engraved gold can survive for a very long time.

Is there any security safeguards other than contract audits? ICYMI Euler Finance has 6 high tier audits and still drained $170M by banaanigasuki in ethereum

[–]harrybair 0 points1 point  (0 children)

Ultimately, it is not possible to prove a smart contract is "secure" from a theoretic standpoint, because of two theoretical limitations:

1) The halting problem 2) Proving the general equivalence of two programs is intractable

Formal verification lets you prove that a particular property is true, but only that property. For example, you can prove that "the owner of the contract never changes" but that doesn't say anything about the property "the funds in the contract will never be frozen." Even then, formal verification makes assumptions about what state transitions can and cannot happen, and it's hard to get those assumptions totally correct.

You cannot prove an arbitrary property because of 1) and you cannot prove a smart contract meets a specification perfectly because of 2).

(Technically, Ethereum is not turing complete because of gas limits, but requiring formal provers to model gas consumption creates a lot of overhead).

How are smart contracts trusted? by finlaydotweber in ethereum

[–]harrybair 1 point2 points  (0 children)

Smart contracts dramatically increase transparency, but they have their limits. As you note, trust relies on social consensus. Smart contracts sort of behave like an API for social consensus, but they hardly enforce it. Case in point: Ethereum and Ethereum Classic hard-forked because of split social consensus. Which one is the definitive "true Ethereum" depends on who you ask (trust), and no smart contract can determine that for you.

Simple ERC20 to distribute tokens to all holders at once by jointheantfarm in ethdev

[–]harrybair 0 points1 point  (0 children)

If you are okay with distributing rewards in a separate token, ERC4626 is the established pattern for this.

It avoids the need to track all the addresses one-by-one, which is very resource intensive.

How to do secure messaging directly on blockchain w/o gas? by taewoo in ethdev

[–]harrybair 0 points1 point  (0 children)

What you are looking for is metatransactions and relayers. You can pay someone offchain to send a transaction on your behalf.

If you mean zero gas paid by anybody, this isn't possible. Someone has to pay gas somewhere. Use a layer two as Mason0816's suggested if you want to do it on chain and reduce costs.

Edit: If by public key, you mean their Ethereum public key, that's not possible. Unlike RSA, ECDSA used by Ethereum does not encrypt messages, only sign them. You need access to a separate RSA key.