-
-
Notifications
You must be signed in to change notification settings - Fork 35
Eth avatar - gravatar for ethereum addresses #58
Comments
My advice is to use a 2-tiered IPFS model where you first upload the image to IPFS, and then upload a JSON object which includes the metadata (including the original file hash, it's dimensions, etc). This will significantly cut down on the necessary gas costs of such a tool. |
This issue now has a funding of 0.23 ETH (198.64 USD) attached to it.
|
from consensys slack: Most popular use-case would probably be adding images to token contracts. Get AirSwap to adopt it 🙂 |
I love the idea and would love to work on it! What time frame do you guys have for this? |
hey @tarekskr -- the bounty is set to expire in about a month.. would that timeframe work for you/ |
Work has been started on the 0.23 ETH (97.14 USD @ $422.33/ETH) funding by: Please work together and coordinate delivery of the issue scope. Gitcoin doesn't know enough about everyones skillsets / free time to say who should work on what, but we trust that the community is smart and well-intentioned enough to work together. As a general rule; if you start work first, youll be at the top of the above list ^^, and should have 'dibs' as long as you follow through. On the above list? Please leave a comment to let the funder (@owocki) and the other parties involved what you're working, with respect to this issue and your plans to resolve it. If you don't leave a comment, the funder may expire your submission at their discretion.
|
@owocki yes a month seems reasonable. I'll start this Fri and will keep you guys updated. |
You would also need a mechanism to prove that you own the address. |
@cleanunicorn you prove you're the owner by calling the smart contract from the desired address, no? |
Guys: I need your opinion on how to proceed with storing the IPFS hashes in the smart contract. We basically have two options:
When using My problem with the above scenario is that it's not future proof at all, and will completely break in case IPFS decides to change the format of its hashes. What do you guys think? Do you have any ideas where we could use |
what magnitude of gas are we talking about? 65% difference means much more in the case of 21000 vs 210000 |
FYI: I just posted on reddit asking the IPFS team for their input. https://www.reddit.com/r/ipfs/comments/8221ru/future_changes_to_the_ipfs_hash_format/ |
@tarekskr first off; thanks for doing such extensive research on this. its great to see how thoughtful youre being :) second; what is your take of the responses on the reddit thread? i have some thoughts about maybe saving gas in the meantime but building the contract to be future-proof also... but would love to hear your thoughts before i go too deep into that. cc @mbeylin |
Based on the comments of the IPFS team, it seems like they want us to future-proof it, which would mean adding those 2 extra uint8s to the storage. Because of how weird solidity works, it's actually cheaper for us to just use 2 uint256's instead of uint8s. I haven't checked the gas costs of this method vs the string array but something tells me the savings will be much smaller than we had originally expected. |
@owocki it's really my pleasure :) I was actually just going to suggest that we stick with To reduce gas costs to the absolute minimum, I am planning to have the smart contract only store the hashes without any other metadata. Everything else including the name, size, etc. will be stored in IPFS (similar to what @mbeylin has kindly suggested earlier). This should also help keep our smart contract super simple and a lot easier to inspect and debug. |
+1
+1 |
Regarding the image: I propose we enforce a 1:1 aspect ratio, just like Gravatar does. This will make it much easier for 3rd party websites to integrate EthAvatar into their content. |
Strong ➕ |
Great, working on that. Btw I was thinking that one of the really great uses of this project is account verification. If I am sending ETH to an exchange for instance, I'd love to see the exchange's logo as soon as I paste the address in my wallet, this way I know I've got the correct address. People are always paranoid about missing a letter and losing all their money, and this is an excellent way to verify they got the correct address. Super excited about this! |
this.. 💯 times this! |
Smart contract now deployed to rinkeby and dapp to Heroku: https://eth-avatar.herokuapp.com/ To use, please make sure the 'rinkeby' network is selected in MetaMask or your favorite Ethereum browser. Please excuse the really primitive UI :) Your feedback is highly appreciated! |
@tarekskr Just dropping in 👀, dApp seemed to have trouble loading - just FYI. You're doing fantastic work on this so far. ➕ to exchanges and individuals both using this - will be an immediate UX boost. I almost want to loop in Dan Finlay on this @owocki, but I'll let you guys keep going a bit further down the road for now 🙂 Glad you checked out Gitcoin and good luck as you continue! |
@vs77bb thank you so much! :) Are you getting any errors on the page or the console? I am assuming you're on 'rinkeby', correct? EDIT: One other thing that could be happening: the Heroku dyno could be still waking up since we're on the free plan and dynos shut down after a certain period of inactivity. |
awesome! this is fast progress. qa notes:
|
May I suggest using Jdenticon instead of blockies? Is what we are going for in Trust wallet. They look a lot better. |
|
i do agree they look better but id be curious to hear from @tarekskr whether its too complex to change course now |
i dont think it is.. theres about a 25 second wait to even confirm the tx in metamask... maybe this is IPFS upload? |
IPFS upload happens before MetaMask shows up, and doesn't take more than a couple of seconds max. I'll retest this and see what's going on. |
@Aleph7 I used blockies since it's already being used by Mist, Augur, and several others I believe. I personally liked Jdenticon more, but couldn't find a React component for it. |
hey @tarekskr i've registered ethavatar.com and i have a server to run it on (instead of heroku).. can you send me your ssh public key pls? also, is ubuntu 16.04 okay for the server? |
Awesome! Please find my SSH public key here: https://pastebin.com/EUkwNSRB Ubuntu should be perfect 👍 |
@tarekskr can you send me an email so that i can send you the ssh login information in a place thats not public? kevin@gitcoin.co i am also on the gitcoin.co/slack slack if thats a better place |
@owocki sent. I've also fixed the locked MetaMask issue you were having earlier. Will create a PR shortly. |
just sent you the ssh info for the server (which ethavatar.com points to).. do you think you could deploy the app to that server? |
Following this discussion regarding deployment strategy - Could be a good one to deploy containerized to start, even if the containers are just running on the instance? |
dapp now deployed and live on http://ethavatar.com |
@tarekskr mind writing a quick readme and putting it up on https://github.com/gitcoinco/ethavatar ? things id like to see
|
Sure!
There is currently no POST/GET API implemented. My main reasoning is that I don't wan't people to depend on a centralized server (in this case http://ethavatar.com) to fetch the avatar, but rather use the smart contract & IPFS directly. One cool thing we could do however is publish the |
Sorry.. I was using POST/GET as shorthand for the creation of a new avatar, and the 'get' of the avatar image for an existing avatar respectively.. not suggesting that the literal HTTP verbs be implemented. I was looking for javascript code samples of how one would get the avatar urls back, because those will go on the landing page for this application (in addition to the README.md). I will likely follow on with web3py examples from there.
on, and one more thing .. mind deploying to mainnet? |
Just deployed to mainnet! 🎉 Will get to README.md later today. |
thx :) |
Just commited README.md. Wording probably needs some refinement as I blabbered a lot about Eth Avatar's use cases :) |
looks great! |
@tarekskr want to submit work at https://gitcoin.co/funding/details?url=https://github.com/gitcoinco/skunkworks/issues/58 so we can pay you out? |
@owocki will do, thank you so much! It was a real pleasure working on Eth Avatar, really can't wait to see it adopted! :) |
The funding of 0.23 ETH (159.99 USD @ $695.6/ETH) attached to this issue has been approved & issued to @tarekskr.
|
paid! |
@owocki got it, thanks again! |
Any bounties active to make this into an NPM package so it can easily be implemented in Metamask and other wallets? |
not yet.. we are working to firm up the standard at ethereum/EIPs#928 and then will be BUIDLing it after that |
@owocki Thank you! I will join in over there. |
Good |
I created NPM package so this can be integrated into other applications. It is available on filips123/EthAvatar.JS. For more details see gitcoinco/ethavatar#17. |
what
An important part of the Ethereum Ecosystem
ETHAvatar - a gravatar-like app, but instead of attaching images to emails, it attaches avatars to ETHereum addresses.
what, technically
web3.eth.coinbase
in a smart contract which you build and deploy to rinkeby, and then, once tested, to mainnetget
is called on an image that does not exist, return an IPFS hash which contains an identicondesign
do not worry about the frontend design. once you have built an app that works functionally, we will apply a design to it.
bounty
code this application up, open source the code (both the webapp and the smart contract), and deploy it to heroku (or similar) so it can be tested without having to deploy it.
if you wouldnt mind delivering code samples for posting an ETHavatar and GETing an ethavatar, thatd be great too. wed like to display these on the landing page of the site
The text was updated successfully, but these errors were encountered: