전체 글 126

[클래리티] 8. 제어 흐름과 예외 처리

이전글 [클래리티] 7. 함수이전글 [클래리티] 6. 맵이전글 [클래리티] 5. 변수와 상수2이전글 [클래리티] 4. 변수와 상수1이전글 [클래리티] 3. 클래리티 기본 규칙이전글 [클래리티] 2. 히로 플랫폼(Hiro Platform)히로 플랫폼kwjdnjs.tistory.com 제어 흐름과 예외 처리 이번 글에서는 클래리티의 제어 흐름과 예외 처리에 대해 알아보겠습니다. 1. asserts! asserts!는 특정 조건에서 에러를 발생시키기 위한 함수입니다. 기본적으로 (asserts! true (err "failed"))처럼 사용합니다.  (asserts! true (err "failed"))의 경우 true를 반환합니다. (asserts! false (err "failed"))의 경우 에러 메시지..

[클래리티] 7. 함수

이전글 [클래리티] 6. 맵이전글 [클래리티] 5. 변수와 상수2이전글 [클래리티] 4. 변수와 상수1이전글 [클래리티] 3. 클래리티 기본 규칙이전글 [클래리티] 2. 히로 플랫폼(Hiro Platform)히로 플랫폼(Hiro Platform)  히로 플kwjdnjs.tistory.com 함수 이번 글에서는 클래리티의 함수에 대해 알아보겠습니다. 1. 함수의 종류 클래리티에서 사용하는 함수는 크게 public, private, read-only 세 종류입니다. public은 외부 계정과 컨트랙트에서 호출이 가능한 함수입니다.private은 코드가 작성된 컨트랙에서만 호출이 가능한 함수입니다.read-only는 함수 내부에서 변수의 값을 수정할 수 없는 함수입니다.  2. 함수 선언 클래리티의 함수는 함..

[클래리티] 6. 맵

이전글 [클래리티] 5. 변수와 상수2이전글 [클래리티] 4. 변수와 상수1이전글 [클래리티] 3. 클래리티 기본 규칙이전글 [클래리티] 2. 히로 플랫폼(Hiro Platform)히로 플랫폼(Hiro Platform)  히로 플랫폼은 스택스 스마트 컨트랙트 개kwjdnjs.tistory.com 맵 이번 글에서는 클래리티의 맵에 대해서 알아보겠습니다.  맵은 변수와 상수처럼 데이터를 저장하는 방식 중 하나로 해시 테이블로도 불립니다. 즉, 맵은 키-값 쌍으로 저장하는 방식을 말합니다. 튜플도 키를 이용해 데이터를 저장하지만 맵은 튜플과 다르게 키 이름을 따로 입력하지 않습니다. 즉, 키-값 데이터를 연결만 하는 말 그대로 해시 테이블인 것입니다.  맵은 다음과 같이 define-map, 맵 이름, 키 타..

[클래리티] 5. 변수와 상수2

이전글 [클래리티] 4. 변수와 상수1이전글 [클래리티] 3. 클래리티 기본 규칙이전글 [클래리티] 2. 히로 플랫폼(Hiro Platform)히로 플랫폼(Hiro Platform)  히로 플랫폼은 스택스 스마트 컨트랙트 개발을 돕기 위해 제작된 웹 기반 개발kwjdnjs.tistory.com 변수와 상수2 지난 글에 이어서 조금 더 복잡한 자료형에 대해 알아보겠습니다. 1. 시퀀스 자료형 클래리티에서 사용하는 시퀀스 자료형은 아래와 같습니다.버퍼: 고정된 길이의 16진수 값을 저장합니다. '0x'로 시작하는 값만을 사용해야 합니다.문자열: UTF-8 문자열을 사용할 경우 u"text"처럼 u로 시작해야 합니다.배열: 하나의 배열에는 같은 자료형 데이터만 사용할 수 있습니다. 2. 복합 자료형 클래리티에..

[클래리티] 4. 변수와 상수1

이전글 [클래리티] 3. 클래리티 기본 규칙이전글 [클래리티] 2. 히로 플랫폼(Hiro Platform)히로 플랫폼(Hiro Platform)  히로 플랫폼은 스택스 스마트 컨트랙트 개발을 돕기 위해 제작된 웹 기반 개발환경입니다. 히로 플랫폼에 접속하여 로kwjdnjs.tistory.com 변수와 상수1 이번 글에서는 클래리티의 기본적인 변수와 상수에 대해 알아보겠습니다. 1. 기본 자료형 먼저 클래리티의 기본 자료형에 대해 알아보겠습니다. int: 일반 정수형uint: unsigned 정수형, 사용할 때에는 u12처럼 숫자 앞에 u를 붙여야 합니다. int와 uint는 함께 연산할 수 없습니다.bool: 불 타입 (true or false)principal: 클래리티에만 존재하는 특수한 자료형으로,..

[클래리티] 3. 클래리티 기본 규칙

이전글 [클래리티] 2. 히로 플랫폼(Hiro Platform)히로 플랫폼(Hiro Platform)  히로 플랫폼은 스택스 스마트 컨트랙트 개발을 돕기 위해 제작된 웹 기반 개발환경입니다. 히로 플랫폼에 접속하여 로그인하는 것만으로도 특별한 준비작업 없이 클kwjdnjs.tistory.com  클래리티 기본 규칙 이번 글에서는 클래리티의 기본 규칙에 대해 알아보겠습니다.  1. 전위 표기법 클래리티는 리스프(LISP) 형태의 프로그래밍 언어입니다. 즉,  일반적인 프로그래밍 언어와는 조금 다른 규칙을 가지고 있습니다.  가장 큰 차이점은 클래리티가 전위 표기법을 사용한다는 점입니다.  일반적인 프로그래밍 언어는 중위 표기법을 사용합니다. 예를 들어, 2와 3을 더하는 식은 다음과 같이 작성합니다. '2..

[클래리티] 2. 히로 플랫폼(Hiro Platform)

이전글 [클래리티] 1. 클래리티와 스택스 스마트 컨트랙트클래리티와 스택스 스마트 컨트랙트 I. 클래리티 클래리티는 스택스의 스마트 컨트랙트 언어입니다. 이더리움에서 스마트 컨트랙트를 개발하기 위해 솔리디티를 사용하는 것처럼, 스택스에서kwjdnjs.tistory.com  히로 플랫폼(Hiro Platform)  히로 플랫폼은 스택스 스마트 컨트랙트 개발을 돕기 위해 제작된 웹 기반 개발환경입니다. 히로 플랫폼에 접속하여 로그인하는 것만으로도 특별한 준비작업 없이 클래리티 개발을 바로 시작할 수 있습니다.  히로 플랫폼을 이용하기 위해 먼저 아래 사이트에 접속하여 가입을 진행합니다. Hiro PlatformEverything you need to develop, test, debug smart contr..

[클래리티] 1. 클래리티와 스택스 스마트 컨트랙트

이전글 [클래리티] 0. 시작하기 전에클래리티는 스택스의 스마트 컨트랙트 언어입니다. 따라서 클래리티에 대해 알아보기 전에 스택스와 비트코인 그리고 스마트 컨트랙트에 대한 기본적인 내용을 먼저 알아보는 것을 권장합니다kwjdnjs.tistory.com  클래리티와 스택스 스마트 컨트랙트 I. 클래리티 클래리티는 스택스의 스마트 컨트랙트 언어입니다. 이더리움에서 스마트 컨트랙트를 개발하기 위해 솔리디티를 사용하는 것처럼, 스택스에서는 클래리티를 사용하여 스마트 컨트랙트를 만듭니다.  이더리움의 솔리디티와 스택스의 클래리티 모두 스마트 컨트랙트용 언어입니다. 하지만 두 언어는 사이에는 큰 차이가 있습니다.  먼저 클래리티는 결정 가능한 언어입니다. 솔리디티와 이더리움의 opcode는 기본적으로 결정 불가능한..

[클래리티] 0. 시작하기 전에

클래리티는 스택스의 스마트 컨트랙트 언어입니다. 따라서 클래리티에 대해 알아보기 전에 스택스와 비트코인 그리고 스마트 컨트랙트에 대한 기본적인 내용을 먼저 알아보는 것을 권장합니다. 다음은 이 블로그에 있는 스택스 관련 글들 입니다.  '스택스/스택스와 비트코인의 미래' 카테고리의 글 목록평범한 대학생의 블록체인 기술 중심 블로그 입니다.kwjdnjs.tistory.com  다음글 [클래리티] 1. 클래리티와 스택스 스마트 컨트랙트클래리티와 스택스 스마트 컨트랙트 I. 클래리티 클래리티는 스택스의 스마트 컨트랙트 언어입니다. 이더리움에서 스마트 컨트랙트를 개발하기 위해 솔리디티를 사용하는 것처럼, 스택스에서kwjdnjs.tistory.com

[스택스와 비트코인의 미래] 8. sBTC: 비트코인 확장

이전글 [스택스와 비트코인의 미래] 7. 나카모토 업그레이드: 계속되는 변화이전글 [스택스와 비트코인의 미래] 6. 가이아: 블록체인 외부로이전글 [스택스와 비트코인의 미래] 5. BNS: 비트코인 도메인 이전글 [스택스와 비트코인의 미래] 4. 클래리티: 튜링 완전에 대한 논kwjdnjs.tistory.com sBTC비트코인 확장  비트코인을 다른 블록체인에서 활용하기 위한 시도는 여러 차례 있었습니다. 대표적으로는 이더리움의 wBTC 등이 있습니다.  지금까지 비트코인을 다른 체인에서 활용하기 위해서는 비트코인을 보관하고 다른 블록체인에 동일한 양의 BTC 토큰을 발행하기 위한 기관이 필요했습니다. 즉, 비트코인을 다른 블록체인에 옮기기 위해서는 먼저 해당 서비스를 제공하는 기관에게 토큰 발행을 요청..