피싱 당하지 마세요. 토큰 세일과 관련하여 발표된 내용이 없습니다. Marconi 토큰을 판매한다고 하는 사람이 있으면 조심하세요.

개발자

marconi

네트워크 패킷에 접근하는 튜링 완전 언어인 Marconi 스크립트를 활용하여 탈 중앙화 앱을 작성할 수 있습니다.

탈 중앙화 앱을 공용/사설 네트워크용 글로벌 체인이나 브랜치 체인에 전송할 수 있습니다.

marconi 라이브러리

API를 통해 트래픽 라우팅, 패킷 분석, 패턴 인식, 브랜치 체인 생성, 토큰 마이그레이션을 실시할 수 있습니다.

SDK를 미리 확인해 보세요.

샘플 코드

정책을 수립하여 네트워크에서 허용되는 트래픽 유형을 결정할 수 있습니다.
  1. Contract IntranetFirewall {
  2. Init(Address target_address) {
  3. TunnelRef handle = mOpen(target_address);
  4. mApply(handle, {AllowOnlyCorpOrHTTPS});
  5. }
  6. }
  7. Status AllowOnlyCorpOrHTTPS(PacketRef packet) {
  8. if (packet.src().port() != 443 &&
  9. !packet.src().url().as_string().match('intranet.example.com')) {
  10. return Status::UNSAFE;
  11. }
  12. return Status::OK;
  13. }
  1. Contract IntranetFirewall {
  2. Init(Address target_address) {
  3. TunnelRef handle = mOpen(target_address);
  4. mApply(handle, {AllowOnlyCorpOrHTTPS});
  5. }
  6. }
  7. Status AllowOnlyCorpOrHTTPS(PacketRef packet) {
  8. if (packet.src().port() != 443 &&
  9. !packet.src().url().as_string()
  10. .match('intranet.foo.com')) {
  11. return Status::UNSAFE;
  12. }
  13. return Status::OK;
  14. }
몇 줄의 코드로도 새로운 블록체인을 가동할 수 있습니다.
  1. $ marconi branch foo
  2. >>> Success. Created branch foo.
  3. $ marconi status --branch_name=foo
  4. >>> Branch foo: uninitialized.
  5. $ marconi init --config=/tmp/config.txt --branch_name=foo
  6. >>> Success. Configured branch foo.
  7. $ marconi run --branch_name=foo
  8. >>> Success. Running branch foo.
  1. $ marconi branch foo
  2. >>> Success. Created branch foo.
  3. $ marconi status --branch_name=foo
  4. >>> Branch foo: uninitialized.
  5. $ marconi init --config=
  6. /tmp/config.txt --branch_name=foo
  7. >>> Success. Configured branch foo.
  8. $ marconi run --branch_name=foo
  9. >>> Success. Running branch foo.
유니코드를 포함하고 있는 위장 URL 공격을 비롯한 피싱 공격에 대비하여 네트워크 트래픽을 분석할 수 있습니다.
  1. Contract PhishCatcher {
  2. Init(Address client_address) {
  3. TunnelRef handle = mOpen(client_address);
  4. mApply(handle, {PhishFunc});
  5. }
  6. }
  7. Status PhishFunc(PacketRef packet) {
  8. if (packet.src().url().as_string().match('[^\u0000-\u007F]')) {
  9. return Status::UNSAFE;
  10. }
  11. return Status::OK;
  12. }
  1. Contract PhishCatcher {
  2. Init(Address client_address) {
  3. TunnelRef handle = mOpen(client_address);
  4. mApply(handle, {PhishFunc});
  5. }
  6. }
  7. Status PhishFunc(PacketRef packet) {
  8. if (packet.src().url().as_string()
  9. .match('[^\u0000-\u007F]')) {
  10. return Status::UNSAFE;
  11. }
  12. return Status::OK;
  13. }