멀티 체인 2.1 : 변수와 ​​라이브러리

소스 노드 : 1587135

스마트 필터를 훨씬 더 스마트하게 만들기

오늘, 우리는 멀티 체인 개발자를위한 두 가지 중요한 새로운 기능이 포함 된 멀티 체인 2.1을 출시하게되어 기쁩니다.

2.0 년 반 전에 MultiChain XNUMX이 소개되었습니다. 스마트 필터, 트랜잭션 및 데이터의 유효성을 검사하기 위해 사용자 지정 논리를 블록 체인에 포함 할 수 있습니다. 스마트 필터는 개념적으로 다른 블록 체인 플랫폼에서 제공하는 "스마트 계약"과 유사하지만 MultiChain의 더 빠른 트랜잭션 모델에 맞게 디자인이 다릅니다.

스마트 필터는 트랜잭션 필터와 스트림 필터의 두 가지 종류가 있습니다. 트랜잭션 필터는 입력, 출력 및 메타 데이터를 검사하여 온 체인 트랜잭션을 전체적으로 검증합니다. 트랜잭션이 필터를 통과하지 못하면 네트워크의 모든 노드에서 거부됩니다. 스트림 필터는 멀티 체인 스트림키, 게시자 및 온 체인 또는 오프 체인 데이터를 JSON, 텍스트 또는 바이너리 형식으로 확인합니다. 항목이 필터를 통과하지 못하면 유효하지 않은 것으로 표시되고 해당 데이터는 스트림을 구독하는 모든 노드에 의해 숨겨집니다.

두 가지 유형의 스마트 필터는 모두 자바 스크립트로 작성되며 Google의 결정적 버전 내에서 실행됩니다. V8, Chrome, Node.js 및 기타 여러 플랫폼을 지원하는 초고속 JavaScript 엔진입니다. 간단한 필터는 코딩하고 이해하기 쉽습니다. 예를 들어 다음은 항목에 최소한 두 개의 키가 있는지 확인하는 스트림 필터입니다.

function filterstreamitem() { var item=getfilterstreamitem(); // 콜백 함수 if (item.keys.length2) return "적어도 두 개의 키가 필요함"; }

전반적으로 우리는 스마트 필터에 대한 훌륭한 피드백을 받았지만 더 나은 방법으로 만들 수있는 두 가지 방법에 대해 반복해서 들었습니다. 첫째, 많은 사용자는 블록 체인에 있지만 검증중인 트랜잭션 또는 스트림 항목 내에있는 정보를 읽을 수있는 필터를 원합니다. 사용 사례에는 허용 된 국가의 변경 목록, 외부 "오라클"에서 제공하는 환율 또는 특정 규칙을 전환하는 스위치가 포함됩니다.

둘째, 일부 개발자는 코드를 복제하지 않고 여러 필터에서 JavaScript 함수 집합을 사용하려고합니다. 또한 기존 필터를 비활성화하고 대신 새 필터를 만들지 않고도 이러한 기능을 업데이트하고 버그를 수정하거나 새로운 상황을 해결할 수 있기를 원합니다. 예를 들어, 공유 코드에는 애플리케이션 별 로직, JSON 유효성 검사 또는 PDF 콘텐츠 구문 분석을위한 타사 라이브러리가 포함될 수 있습니다.

멀티 체인 2.1 두 가지 새로운 유형의 온 체인 엔티티를 소개합니다. 변수도서관, 이러한 요구에 응답합니다.

변수

멀티 체인 변수부터 시작하겠습니다. 이것들은 일반 프로그래밍 언어의 것과 매우 유사하지만 블록 체인 트위스트가 있습니다. 명명 된 변수는 블록 체인에서 생성 할 수 있습니다. 각 변수에는 해당 값을 업데이트 할 수있는 동적 주소 집합이 있으며,이 집합은 한 명 이상의 변수 관리자가 관리합니다 (기본적으로 변수 작성자 만). 변수는 블록 체인 트랜잭션에서 생성 또는 업데이트되며 간단한 고수준 API 명령을 사용하여 전송할 수 있습니다. 또는 하위 수준 API를 사용하여 하나 이상의 변수를 원자 적으로 설정하고, 스트림 항목을 작성하고, 자산을 전송하고, 권한을 변경하는 복잡한 트랜잭션을 빌드 할 수 있습니다.

변수 값 자체는 숫자, 문자열, 부울, 중첩 된 객체 및 배열을 포함한 모든 JSON 구조를 포함 할 수 있으며 효율적인 우브슨 직렬화 형식. 물론 스마트 필터는 간단한 콜백 함수를 사용하여 변수의 현재 값을 쿼리 할 수 ​​있습니다. 그러나 이것이 블록 체인이기 때문에 변수 값과 작성자의 전체 기록도 사용할 수 있으며 다른 콜백 함수를 사용하여 부분적으로 또는 전체적으로 검색 할 수 있습니다. 더 쉽게 개발할 수 있도록 이러한 콜백은 애플리케이션 지향 API를 통해서도 사용할 수 있습니다.

도서관

변수의 더 큰 형제 인 라이브러리로 이동해 보겠습니다. 변수와 마찬가지로 블록 체인에 명명 된 라이브러리를 얼마든지 만들 수 있습니다. 그러나 라이브러리에는 세 가지 사용 가능한 모드가있는 더 풍부한 업데이트 모델이 있습니다. 불변의, 즉시승인 대상.

한 번 불변의 라이브러리가 생성되면 코드를 변경할 수 없습니다. 도서관 즉시 업데이트는 개별적으로 코드를 대체 할 수있는 주소 세트를 사용하여 변수처럼 변경할 수 있습니다. 그러나 도서관에서 승인 대상 업데이트는 블록 체인 글로벌 관리자의 일정 비율에 의해 승인 된 후에 만 ​​적용됩니다. 이 마지막 모드는 보안과 유연성 사이에 큰 절충안을 제공합니다.

라이브러리 코드는 일반 JavaScript로 작성되며 스마트 필터가 사용할 하나 이상의 함수를 정의합니다. 변수와 마찬가지로 라이브러리는 API를 사용하여 쉽게 전송되는 특수 트랜잭션에서 생성 또는 업데이트됩니다. 스마트 필터가 생성되면 필수 라이브러리가 선택적 매개 변수로 제공됩니다. 라이브러리는 항상 필요한 필터 컨텍스트에서 실행되므로 적절한 경우 스마트 필터 콜백을 사용할 수 있습니다. MultiChain은 블록 체인을 변경하기 전에 라이브러리 및 업데이트를 로컬에서 테스트 (및 롤백)하기위한 광범위한 기능을 제공합니다.

포장하기

블록 체인 규칙과 관련된 모든 기능과 마찬가지로 변수 및 라이브러리는 MultiChain 2.1의 Community 및 Enterprise 에디션 모두에서 사용할 수 있습니다. 우리의 개발자 문서는 새로운 JSON-RPC API스마트 필터 콜백 유효한. 이미 실행중인 블록 체인에서 새로운 기능을 사용하려면 먼저 노드를 MultiChain 2.1로 마이그레이션 한 다음 업그레이드 체인의 프로토콜을 버전 20012로 변경합니다.

그래서 다음은 무엇입니까? 앞으로 몇 달 동안 우리는 상당한 부하를받는 동안 멀티 체인의 성능과 동시성을 개선하기 위해 세부적이고 집중적 인 내부 작업에 집중할 것입니다. 이렇게하면 초당 수백 또는 수천 개의 새로운 트랜잭션을 계속 처리하는 동안 노드를 쿼리해야하는 애플리케이션의 응답 성이 향상됩니다.

그 동안 MultiChain 팀의 우리 모두는 사용자와 고객의 건강과 건강을 기원합니다. 우리는 지금이 모든 사람에게 어려운시기라는 것을 알고 있으며, 안전 해지는대로 정상적인 회의 및 회의 리듬으로 돌아갈 수 있기를 기대합니다.

의견을 적어주세요 링크드 인에.

타임 스탬프 :

더보기 멀티 체인