1. Get Started 1) What Is JavaScript? -Name 더보기 This language was originally designed to appeal to an audience of mostly Java programmers, and because the word "script" was popular at the time to refer to lightweight programs. So the official name of the language specified by TC39( the technical steering committee that manages JS ) and formalized by the ECMA standards body is ECMAScript. The Jav..
https://github.com/getify/You-Dont-Know-JS/tree/2nd-ed?tab=readme-ov-file GitHub - getify/You-Dont-Know-JS: A book series on JavaScript. @YDKJS on twitter. A book series on JavaScript. @YDKJS on twitter. Contribute to getify/You-Dont-Know-JS development by creating an account on GitHub. github.com INDEX 1. Get Started 2. Scope & Closures 3. Objects & Classes 4. Types & Grammar 1. Get Started 1) ..
로컬에서 기본값으로 사용할 Git 사용자 이름과 이메일 설정(global 옵션) 현재 시스템의 모든 Git 작업에 사용할 사용자 이름과 이메일을 설정하고자 한다면, global옵션을 사용해 git config 명령어를 실행한다. $ git config --global user.name "Your Name" $ git config --global user.email you@example.com 잘 설정되었는지 확인하는법 $ git config user.name $ git config user.email 저장소 별로 Git 사용자와 이메일 정보 설정하기 저장소 디렉터리에서 --global 없이 git config를 사용하면 해당 디렉터리(저장소) 전용 설정을 추가할 수 있다. $ git config user..
탈중앙화와 보안이 장점인 이더리움에는 고질적인 문제가 있다. 느리고 비싸다는 것이다. 그래서 이 문제를 해결하기 위한 "scaling solutions" 가 여러가지 제시되었다. 주로 3가지 방식인데, L1 scaling, L2 scaling, side chain 이 있다. L1 스케일링 경우에는 샤딩을 이용한 스케일링을 고려중이고 L2 스케일링의 경우에는 Rollups 솔루션이라고 불리는데 가스비가 100배까지 싸질수 있다고 한다. 별개의 네트워크에서 트랜젝션을 이루어지고, 이 트랜젝션들을 배치로 묶어서 이더리움체인(L1) 에서 검증받게 하는것이 요지이다. 검증법은 크게 두가지로 나뉜다. (레이어2란: 이더리움을 연장하지만 이더리움과는 분리된 블록체인으로, 이더리움의 보안을 계승한다.) L2 스케일링의..
https://programtheblockchain.com/posts/2018/03/09/understanding-ethereum-smart-contract-storage/ 를 번역해보았다. 이더리움 스마트컨트랙트는 독특한 스토리지 모델을 사용하고, 이는 뉴비 개발자들을 혼란시킵니다. 이 포스트에서는 스마트컨트랙트 스토리지 모델을 설명하고, 솔리디티 프로그래밍에서 어떻게 사용하는지를 설명합니다. 목차 1. 1개의 천문학적으로 큰 어레이 2. 고정 크기값 위치하기 3. 다이나믹 사이즈 값들 위치하기 (1)다이나믹 사이즈 어레이 (2)매핑 (3)여러타입들의 조합 1. 1개의 천문학적으로 큰 어레이 EVM 에서 작동하는 각각의 스마트컨트랙트는 각각의 영구적인 스토리지를 가진다. (storage hash) 이 ..
솔리디티 컨트랙트에서 다른 컨트랙트를 부르는방식은 여러가지가 있다. interface, call, delegate call 에 대해 살펴보자. (static call은 일단 제외) 1) 코드상(사용방법상) 차이 2) 소모되는 가스 unit 차이 3) Low / High level function 4) 최종 컨트랙트의 msg. sender, 데이터 저장위치 (packing, unpacking 때문에 한가지 contract 사용보단 무조건 비쌈) 이 세가지에 대해 정리, 테스트해본다. 1 코드상(사용방법상) 차이 (0) 불릴 코드 (Callee) // SPDX-License-Identifier: MIT pragma solidity ^0.8.16; contract Callee { uint public valu..
여러 기능을 넣는데 갑자기 이런 에러가 떴다. "CompilerError: Stack too deep. Try compiling with `--via-ir` (cli) or the equivalent `viaIR: true` ... Otherwise, try removing local variables." 다행히 다들 겪는 일이었다 고통은 나누면 반이된다,, 에러의 이유 EVM 스택에는 16 variable 밖에 못올라간다. 이 variable 은 input and output arguments 모두를 포함한다-> 너무나 황당 정확히는 16슬랏이긴한데, 보통 1슬랏 1 variable 쓰니까.... 이제 취향껏 고쳐보자 해결법 1. variable 갯수 줄이기 ㅋㅋ 2. internal function ..
가스비를 계산하는데 뭔가 계속 이상했다. https://realapril.tistory.com/112 Storing Structs is costing you gas Storing Structs is costing you gas 라는 글을 보고 가스를 측정해 보았다. 2018년 글 wow 여러 시나리오가 테스트되어있다. 가스비가 그냥 state 여러개 저장 >>>construct > construct 내 변수 최적화>>+알파 .. realapril.tistory.com 에 따르면 struct A{ address sideWallet1; address sideWallet2; address sideWallet3; } struct B { string cid; } struct 하나를 저장할때 struct A가스비가..