728x90

버전이 4.x.x일때는 잘 작동되던 코드가 truffle 버전이 5.x.x 되고나서 나타나는 에러이다.

 

해결방법 1. require -> import 로 바꾸면 해결된다.

 

해결방법 2. Truffle 다운그레이드

npm uninstall -g truffle

npm install -g truffle@4.x.x

 

 

It is esm only in 5.x
You can still use a dynamic import to import it in node at least afaik, but should probably just stick to 4.x until you can migrate to esm (feature set shouldn't be much different)

 

https://github.com/chaijs/chai/issues/1561

 

ERR_REQUIRE_ESM in v5 · Issue #1561 · chaijs/chai

Hi there, I don't have all the details, as I don't have access to my workstation right now, but our CI is failing with this error for all our projects using chai when trying an upgrade to chai@5. T...

github.com

 

728x90
728x90

Solidity Docs를 보면서 공부하는데 생소한 문법들이 많이보인다. 아래 2가지정도를 위주로 공부하였다

  • 함수제어자(접근제어,상태제어,사용자 정의제어,payable제어자)
  • 예외처리

 


함수제어자(function modifier) 

위 test함수 뒤에 있는

external , view , customModifier payable 은 모두 함수제어자이다.

 

1.접근제어자 (visibility modifier)

해당 함수가 언제,어디서 호출될 수 있는지 제어한다.

 

접근제어자는 함수를 정의할때 (param) 뒤에 쓰이기도 하고 변수 앞에 쓰이기도 하는데

보통은 (param)뒤에 쓴다.

이 접근제어자는 함수나 변수에 대한 접근을 제한하는 역할을 한다.

접근제어자는 기본적으로 public , private, internal, external 등이 있다. 

 

  • public : 변수나 함수가 어디에서든 접근 가능
  • private : 오직 private이 정의된 Contract 에서만 사용이 가능(private로 정의된 Contract에 get , set함수를 만들어야 접근가능 )
  • internal : 오직 internal이 정의된 contract 안에서, 상속받은 자식 smart contract 에서 접근 가능하다. private과 유사하나 상속받은 자식 contract에서 접근이 가능하다는것이 추가되었다고 보면 된다.
  • external : 오직밖에서만 접근이 가능하다. public과 유사하나 , external이 정의된 contract내에서는 사용이 불가능 

 

2. 상태 제어자(state modifier)

블록체인과 상호작용 하는 방법에 대한 것이다.

 

  • view, constant : 해당 함수를 실행해도 어떤 데이터도 저장/변경되지 않음
  • pure : 해당함수가 어떤 데이터도 블록체인에 저장하지 않을뿐만아니라, 블록체인으로부터 어떤 데이터도 읽지않는다.

 

3. 사용자 정의 제어자

직접 원하는 논리대로 제어자를 정의하여 함수에 적용할 수 있다.

 

// 메시지를 보낸 사람이 owner와 같은지 확인하는 제어자 정의

modifier onlyOwner () {
	require(msg.sender == owner);
  	_; // _;와 항상 함께 쓰인다.
}

 

require 는 예외처리이다. 예외처리는 아래와 같다. 

  • require : 조건이 false 에러를 발생하고 gas를 환불해줌
  • revert : 조건없이 에러를 발생시키고 gas를 환불
  • assert : gas를 다소비한 후 조건이 false일때 에러를 발생 

4. payable 제어자 

함수 호출을 통해 이더리움을 받을 수있는 특별한 함수 유형을 정의한다.

함수가 실행되는 동시에 컨트랙트 계정(CA)에 돈을 지불할 수 있다. payable을 작성하지 않은 함수에서는 이더를 보낼 수 없다.

 

contract OnlineStore {
  function buySomething() external payable {
    require(msg.value == 0.001 ether);
    transferThing(msg.sender);
  }
}

 

위 코드를 정리해 보면 

1. OnlineStore라는 Contract를 정의하고

2. buySomething()라는 함수를 정의하고 함수제어자로 external(external로 정의된 함수 밖에서만 접근가능)이고 

payable라는 함수제어자가 있다.

3. buySomething()는 msg.value(이 함수를 호출할 떄 보낸 wei(이더)의 양을 나타낸다) 가 0.001이더가 아닐 경우 종료한다. 참일경우(value == 0.001eth) 이더를 전송한다.


 

msg 는 솔리디티에서 제공하는 전역변수로서 현재 함수호출에 대한 정보를 담고있다. 

msg.sender 현재 함수를 호출한 주소를 나타냅니다.
msg.value 이더리움 네트워크에서, 이 함수를 호출할 때 보낸 wei의 양을 나타냅니다.
msg.data 함수를 호출할 때 보낸 데이터를 나타냅니다.
msg.gas 함수를 호출할 때 사용할 수 있는 가스의 양을 나타냅니다. (v0.4.21 이후로는 더 이상 사용되지 않습니다.)
msg.sig 함수를 호출할 때 사용한 함수 서명을 나타냅니다.
728x90
728x90

 

Solidity는 이더리움 가상머신을 대상으로 설계된 언어이며 Smart Contrat  을 구현하기 위한 언어이다.

Solidity을 이해하려면 Smart Contrat 이 무엇인지 먼저 알아야되고, Smart Contrat  을 이해하기 위해서는 블록체인이 뭔지 알아야된다. (추가로 EVM 까지...)

 

도움받은 자료(블록체인과 스마트컨트랙을 이해하는데 도움이 됨. 본인은 사실 코인투자를 해왔기에 이미 두루뭉실하게 알고있었음) 

1.  https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE10531916

 

블록체인 기술과 활용 연구 | DBpia

이새봄, 박아름, 송재민 | 한국컴퓨터정보학회논문지 | 2021.2

www.dbpia.co.kr

2. https://goldsystem.tistory.com/347

 

스마트컨트랙 제대로 이해하기

정의 스마트 계약 또는 스마트 컨트랙이란 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것을 말합니다. 블록체인 2.0이라고도 합니다. Hashgraph에

goldsystem.tistory.com


Solidity 언어 특징

  • 절차적 프로그래밍 언어(C++ , 자바스크립트, 자바)
  • 정적타입 (자바와 비슷) : 컴파일 시에 타입이 결정, 오류가 있다면 컴파일 에러 발생
  • 객체 지향언어
  • 확장자 : .sol 

예제 코드 

실습환경 : https://remix.ethereum.org/ 

Compiler : 0.8.24

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) public {
        storedData = x;
    }

    function get() public view returns (uint) {
        return storedData;
    }
}

SPDX-LIcense-Identifier

스마트 컨트랙트에 대한 신뢰를 높이고, 저작권 문제를 해소하기 위해 코드 최상단에 꼭 SPDX라이센스를 주석으로

명시해야된다. 

https://spdx.org/licenses/

 

SPDX License List | Software Package Data Exchange (SPDX)

SPDX License List The SPDX License List is an integral part of the SPDX Specification. The SPDX License List itself is a list of commonly found licenses and exceptions used in free and open or collaborative software, data, hardware, or documentation. The S

spdx.org

 

SPDX(Software Packgae Data Exchange)는 소프트웨어 명세서에 대한 개방형 표준

SPDX는 소프트웨어와 관련된 구성요소,라이센스,저작권,보안 참조 및 기타 메타데이터의 표현을 허용하며

원래목적은 라이센스 준수를 개선하는 것이었고 이후 공급망 투명성과 같은 추가 사용사례를 촉진하기 위해 확장됨


Pragma

컴파일러의 특정 기능을 활성화 하는데 사용됨

위 예제코드에서는 solidity 버전을 0.4.16 ~ 0.9.0을 사용한다고 설정 


Contrat

객체지향언어(Java)에서 class와 유사 위 예제코드에서는 Contrat SimpleStorage를 만들고, 이 Contract 안에는

storedData라는 상태변수(storage에 저장되어있는 데이터)와  set과 get의 함수들이 정의되어있다.


상태변수(State Variables)

Contract 내부에서 선언된 변수 중 function 외부에서 선언된 변수를 상태변수(state Variables)라고 함

contract storage에 저장됨 -> 모든 function이 접근가능, function이 변경한 값은 계속해서 저장됨,,

 

1. Storage : 블록체인에 기록되는 영구적으로 값이 유지되는 데이터 영역

2. Memory : 프로그램이 동작되는 동안에만 값이 저장되고, 종료되는 값이 사라짐


값형 데이터 타입 (Value types)

  • Boolean
    true(default)/false
  • 정수(int, uint)
    signed integers: 부호 있음
    unsigned integer: 부호 없음
    8bit ~ 256bit까지 지원 (예: int8: -128 ~ 127, uint16: ~65,535)
  • Byte
    데이터를 바이너리 형태로 저장하기 위해 byte타입을 지원함.
    bytes1 ~ bytes32까지 정해져 있음.
    크기가 정해져 있기 때문에 fixed-sized byte array라고도 불림.
    정해진 바이트 크기와 다르면 에러가 남.
  • cf.) bytes 타입: dynamically sized byte array - 참조형(reference) 타입임
  • 주소(Address)
    20byte 크기의 이더리움 어드레스
    balance property를 갖고 있어 이더 잔액을 확인할 수 있음.
    이더를 옮기는 transfer, send 메소드 지원(address.transfer(amount), address.send(amount))
  • 열거형 (Enumerations)
    내부적으로는 정수 값으로 구현됨.

 

참조

.https://velog.io/@mae-zung/Solidity-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95

 

.https://docs.soliditylang.org/en/v0.8.24/introduction-to-smart-contracts.html#simple-smart-contract

 

.https://goldsystem.tistory.com/347

 

728x90
728x90

이글은 완전 기초적인 CRUD 구현방법에 대해 설명해드린느 글입니다.

 


CRUD란?

📥 Create : 데이터 생성
👀 Read : 데이터 불러오기
✍️ Update : 데이터 수정 / 갱신
📤 Delete : 데이터 삭제하기

 

 

 

<1.시작>

#1.장고설치 
pip install django
#2. 장고 프로젝트만들기
django-admin startproject config .
#3. 데이터베이스DB 생성
python manage.py migrate
#4. 앱생성
python manage.py startapp myapp

 

 

<2.프로젝트 구성>

>

 

3. 소스코드

#myproject/urls.py

from django.contrib import admin
from django.urls import path , include

#사용자가 사이트에 접속했을떄 요청을 어떻게 누가 처리할건지 지정하는 
#라우팅을 해주는 파일 

# https://127.0.0.1/
# https://127.0.0.1/app/
# https://127.0.0.1/create/
# https://127.0.0.1/read/1/
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('myapp.urls'))
]
#myapp/urls.py

#장고의 urls.py 파일은 페이지 요청이 발생하면 가장 먼저 호출되는 파일로 
#URL과 뷰 함수 간의 매핑을 정의한다. 뷰 함수는 views.py 파일에 정의된 함수를 말한다.
# 본 프로젝트에서는 글생성, 읽기, 삭제, 수정 이 있기때문에 4개의 path를 추가해주었다.

from django.contrib import admin
from django.urls import path , include
from myapp import views

urlpatterns = [
    path('',views.index),
    path('create/',views.create),
    path('read/<id>/',views.read),
    path('delete/' , views.delete),
    path('update/<id>/',views.update)
    
]

 

#myapp/views.py

from django.shortcuts import render, HttpResponse
import random
from django.views.decorators.csrf import csrf_exempt
from django.shortcuts import redirect
nextId = 4
topics = [
{'id':1, 'title':'routing', 'body':'Rounting is ..'},
{'id':2, 'title':'view', 'body':'view is ..'},
{'id':3, 'title':'model', 'body':'model is ..'}
]

def HTMLTemplate(articleTag,id=None):
    
    global topics
    ol = ''
    contextUI =''
    if id != None:
        contextUI = f'''
            <li>
                <form action="/delete/" method="post">
                    <input type="hidden" name="id" value={id}>
                    <input type="submit" value="delete">
                </form>
            </li>

            <li>
                <a href="/update/{id}">update</a>
            </li>

    '''

    for topic in topics:
        ol +=  f'<li><a href = "/read/{topic["id"]}">{topic["title"]}</a></li>'
    
    return (f'''
    <html>
        <body>
        <h1><a href="/" > Django</a></h1>
        <ol>
            {ol}
        </ol>
        {articleTag}

        <ul>
            <li><a href="/create/">create</a></li>
            {contextUI}
            
        </ul>
        
        </body>
        </html>
                                      
    ''')

def index(request):
    article = '''
    <h2> Welcome</h2>
    Hello Django
    '''

    return HttpResponse(HTMLTemplate(article))

def read(request,id):
    global topics
    article =''

    for topic in topics:
        if topic['id'] == int(id):
            article = f'<h2>{topic["title"]}</h2>{topic["body"]}'

    return HttpResponse(HTMLTemplate(article,id))

@csrf_exempt
def create(request):
    global nextId

    print('request.method : ' , request.method)
    if request.method == 'GET':       
        article ='''
            <form action= "/create/" method="post">
                <p> <input type="text" placeholder="title" name="title"> </p>
                <p> <textarea name="body" placeholder="body"> </textarea> </p>
                <p> <input type="submit"></p>
            </form>
        '''
        return HttpResponse(HTMLTemplate(article))
    elif request.method =='POST':
        title = request.POST['title']
        body = request.POST['body']

        newtopic = {"id":nextId , "title":title, "body":body}

        url = '/read/' + str(nextId)
        nextId = nextId + 1
        topics.append(newtopic)
        return redirect(url)
    
@csrf_exempt
def delete(request):
    global topics

    if request.method == 'POST':
        id = request.POST['id']
        newTopics = []
        for topic in topics:
            if topic['id'] != int(id):
                newTopics.append(topic)
        topics = newTopics
        return redirect('/')
    
@csrf_exempt
def update(request,id):
    global topics
    if request.method == 'GET':

        for topic in topics:
            if topic['id'] == int(id):
                selectedTopic ={
                    "title":topic['title'],
                    "body":topic['body']
                }
        article = f'''
            <form action ="/update/{id}/" method="post">
                <p> <input type="text" name="title" placeholder="title"></p>
                <p> <textarea name="body" placeholder="body">{selectedTopic['body']}</textarea></p>
                <p> <input type="submit"></p>
            </form>
        '''
        return HttpResponse(HTMLTemplate(article,id))
    elif request.method =='POST':
        title = request.POST['title']
        body = request.POST['body']
        
        for topic in topics:
            if topic['id'] == int(id):
                topic['title'] = title
                topic['body'] = body
        return redirect(f'/read/{id}')

 

<4. 결과화면 >

 

 

< 5.느낀점 >

Django를 처음 공부하면서 배우는건데 파이썬과 웹작동방식을 조금 알고있으니 빨리 빨리 이해되는거같다.

html css db이용해서 웹페이지 게시판을 처음 구현할때 1주일이 넘는시간이 걸렸던거같은데.... 

 

쨋든 개발을 다하고나서 글쓰기에 <script>alert('test')</script> 스크립트문을 넣었더니 그대로 실행되더라... 보안적인 부분은 아직 장고라는 프레임워크를 배우는단계라 고민만 해보고 다음 단계로 넘어가야겠다. 

728x90

'Python > Django' 카테고리의 다른 글

파이썬 Django 웹 개발 환경준비하기  (0) 2023.09.06
728x90

1. 웹 개발 환경준비

1.장고설치 
pip install django
2. 장고 프로젝트만들기
django-admin startproject config .
3. 데이터베이스DB 생성
python manage.py migrate

2. 프로젝트 구조 

1. config 폴더 : 프로젝트 설정 파일과 웹 서비스 실행을 위한 파일이 들어 있습니다.

   __init__.py : 파이썬 2.x 버전과 호환을 위해 만들어진 비어있는 파일 

   settings.py : 프로젝트 설정에 관한 내용이 담긴 파일

      BASE_DIR : 프로젝트 루트폴더, 설정 파일이나 py파일 등에서 프로젝트의 루트 폴더를 찾아 그 하위를 탐색함, 이 때         문에 변수를 미리 준비해 두는 값

      SECRET_KEY: 보안을 위해 사용되는값, 세션값의 보호나 비밀번호 변경시 사용되는 보안URL을 만드는데 이용

      DEBUG: 디버그 모드를 설정합니다. True 일경우 다양한 오류 메시지ㅣ를  즉시 확인가능 *배포시에는 False 

      allowed_hosts : 현재 서비스의 호스트를 설정 *개발시에는 비어두고 배포시 '*'나 실제 도메인을 사용함

      INSTALLED_APPS: 장고 웹서비스는 다양한 앱의결합으로 만들어지는데, 현재 프로젝트에서 사용하는 앱의 목록을        기록하고 관리합니다.

      MIDDLEWARE: 장고의 모든 요청응답메시지 사이에 실행되는 특수한 프레임워크

      ROOT_URLCONF:기준이 되는 urls.py파일의 경로를 설정

      TEMPLATES: 장고에서 사용하는 템플릿 시스템에 대한 설정들

      WSGI_APPLICATION: 실행을 위한 WSGI 어플리케이션을 설정함

      DATABASE: DB관련 설정

      AUTH_PASSWORD_VALIDATORS : 비밀번호 검을위한 설정

      LANGUAGE_CODE : 다국어에 관한 설정

 

   urls.py : 특정 기능을 수행하기 위해 접속하는 주소를 url이라고 하고 이를 설정해 주는데, 그 설정을 이 파일에 기록함.

   wsgi.py : 웹 서비스를 실행하기 위한 wsgi관련 내용이 들어있습니다. / 실제로 웹 서버와 장고 애플리케이션 사이 통신 역할을 담당 

 

2. venv 폴더 : 프로젝트 구동에 필요한 가상환경이 들어있는 폴더

3. db.sqlite3 : SQLite3 DB파일

4. manage.py : 장고의 다양한 명령어를 실행하기 위한 파일

 

장고 기본명령어

1. 서버 시작하기

$ python manage.py runserver 8080 기본 웹 서버는 8000 포트를 기본으로 동작한다. 변경하고 싶다면 포트 번호를 적어준다.
$ python manage.py runserver 0.0.0.0:8000 IP를 직접 지정하거나 같은 네트워크 망 안에서 접속이 가능하도록 할 때 왼쪽과 같이 적어준다.
$ python manage.py runserver 0:8000 0은 0.0.0.0의 약어이다. 해당 형태로 동작을 시킬 때는 settings.py에 있는 ALLOWED_HOSTS를 설정해 준다.

서버를 실행 후 종료를 하기 위해서는 [Ctrl+C]를 누르면 된다.

 

 

 

2. 기본 명령어 정리

$ django-admin startproject 프로젝트이름

장고 프로젝트를 만드는 명령이다. 장고를 설치 후에 위와 같이 명령어를 치면 프로 젝트가 생성된다. 아래와 같이 뒤에 .을 붙여주면 새로운 파일에서 프로젝트가 생성되는 것이 아니라 현재 파일에서 프로젝트가 생성된다.

$ django-admin startproject 프로젝트이름 .

 

 

$ python manage.py startapp 앱이름

프로젝트에 기능 단위인 앱을 새로 만들 때 사용한다.

 

 

$ python manage.py makemigrations 어플리케이션의 변경 사항을 추적에 DB에 적용할 내용을 정리한다. 보통 모델의 변경 사항이 있을 때 주로 사용한다.
$ python manage.py migrate 실제 변경사항을 DB에 반영한다.
$ python manage.py showmigrations DB 변경사항 목록과 상태를 출력한다.
$ python manage.py createsuperuser 관리자 계정을 생성한다.
$ python manage.py changepassword 계정의 비밀번호를 변경할 수 있다.

 

$ python manage.py sqlmigrate 실행할 SQL 명령문을 출력한다. 어떤 명령문을 실행할지 확인할 떄 사용하고, 튜닝이 안된 쿼리나 슬로우 쿼리 여부를 확인할 수 있다.
$ python manage.py dumpdata 현재 DB의 내용을 백업할 때 사용한다.
$ python manage.py loaddata 백업 파일에서 DB로 내용을 복구 할 때 사용한다.
$ python manage.py flush DB 테이블은 그대로 두고 테이블의 내용만 전부 삭제한다.
$ python manage.py shell 장소 쉘(shell)을 실행한다. 작성한 모델 등을 불러와 실제로 테스트를 해볼 수 있다.
$ python manage.py dbshell DB에 직접 접근할 수 있는 쉘을 실행한다. 장고 어플리케이션에 문제가 있어 관리자 페이지에 접근할 수 없을 때 보통 shell을 이용해 DB를 수정하는데 SQL 구문을 이용해 직접 수정하고 싶다면 dbshell을 이용할 수 있다.

 

참고 : https://han-py.tistory.com/308 

참고 : 배프의 오지랖 파이썬 웹프로그래밍

 

728x90

'Python > Django' 카테고리의 다른 글

[Django] Django CRUD 간단한 게시판 구현하기  (0) 2023.09.17
728x90

바이비트의 경우 KYC변경을 통한 레퍼럴 변경가입이 가능합니다.

수수료할인같은 경우 90일동안 유지되기때문에 90일마다 계정을 바꾸면서 수수료할인을 꼭 받으셔야 됩니다.

 

언제든지 모르는 사항이 있을땐 실시간 고객센터(Q&A방)에 문의주시면 친절하게 답변드립니다.

카톡(FAQ) 링크 :https://open.kakao.com/o/s1haVQAf

1.  아래 링크를 통해서 새로운 이메일로 바이비트 수수료할인링크 레퍼럴 가입하기

주소: https://partner.bybit.com/b/19476

- 바이빗 수수료 할인 가입 코드 : 19476


2.  '기존에 사용하던 계정'에서 방금 가입한 '새로운 계정'으로 KYC 이전하기

※  잠깐!  KYC를  이전하기 전에 꼭 기존계정에 있는 "모든  잔고"를 꼭  새로운계정(1번에서 가입한계정) 으로  먼저 전송 해주세요.

<KYC 이전방법>

핸드폰으로 바이비트 어플을 실행 시킨 뒤 "기존에 사용하시던 아이디" 로 로그인합니다.

1번 메인화면에서 왼쪽 상단 사람아이콘을 클릭하신 뒤 

2번 화면의 Idntify Vertiaction을 클릭합니다.

3번 화면의 Identify transfer을 클릭합니다.

4번 화면의 Faicial vertification을 클릭합니다.

5번 화면에  바이비트레퍼럴로 방금 가입한 이메일을 입력합니다.

6번 화면에 입력하신 이메일에 전송된 인증번호, OTP를 입력하여 인증을 완료합니다.

 

 

 
 
 
 
 
 
728x90
728x90

바이비트에는 레퍼럴이라는 시스템을 통해 수수료할인을 20%가 아닌 40%를 받을수 있다는 사실을 알고계셨나요?

바이비트 선물거래를 이용하시고 계신분이라면 이글을 꼭 읽으셔야 합니다. 매달 여러분은 여러분 시드의 10%를 누군가에게 기부하고 있습니다.

 

안녕하세요. 오늘은 바이빗 레퍼럴에 대해 자세히 알아보려고 하는데요

유튜브 , 인터넷에서 홍보중인 바이비트 수수료20% 할인 가입링크를 통해 회원가입을 하실경우

수수료를 20%할인받으며, 이러한 링크를 통해 회원가입을 시킨 사람은 회원가입 한 사람의 수수료20%를 레퍼럴 수익으로 받을수 있습니다.

 

그래서 많은 방송인들이 자극적인 코인방송을 통해  레퍼럴을 목적으로

회원가입을 유도하고 있는것입니다.

 

 

위와같은 구조로 다른 방송인의 가입링크로 바이비트 회원가입을 할 경우 여러분은 거래수수료 20%할인받으면서 , 방송인은 여러분의 수수료 20%를 수익으로 가져가게 됩니다.

 

하지만  2023년부터는 20%거래수수료할인 + 20% 수수료를 돌려받을수 있습니다.

 

 

바이비트 셀퍼럴방법(수수료20%할인 + 거래수수료20% 페이백 =  수수료 40%할인)


 

바로 셀퍼럴을 이용하는건데요 원칙적으로는 자신이 만든 가입링크에 자신이 회원가입을 할경우 며 수수료할인이 15%밖에 되지않고, 거래정지 및 계정정지가 됩니다.

저는 2021년부터 바이비트 API를 이용한 자동매매 프로그램 등 여러 개발을 해오고 유튜브 활동을 통해

바이비트 공식파트너 혜택을 받아 초대가입링크가 20% 할인이며 여러 혜택을 받고있으며, 바이비트 한국담당 레퍼럴 관리자님한테 문의결과 셀퍼럴은 계정정지지만, 남의 레퍼럴로 가입한후 가입자에게 레퍼럴 수익을 돌려주는것은 상관없다고 합니다.(오피셜)

 

저는 바이비트에서 고정금액 1000달러로 10배 레버리지 선물거래를 하고있는데요, 저는 수수료20%할인을 받아 한달 거래량이 100만달러이고, 레퍼럴 페이백 금액이 116달러이더라구요 , 이제는 수수료할인뿐만 아니라 꼭 거래수수료를 페이백 밷아야합니다 ㅎㅎ....

 

 

셀퍼럴 방법

 

1. https://partner.bybit.com/b/developer  이 가입링크를 통해 새로 계정을 가입합니다.(수수료 20%할인 + 수수료20% 매주 페이백)

 

 

Welcome to Bybit | Register, Trade & Earn High Rewards | Bybit

Welcome to Bybit. Start your crypto journey by creating an account to trade and earn rewards. Securely sign up today with your phone number or email.

www.bybit.com

 

2. https://open.kakao.com/o/sPw0aTWe 카톡으로 자신의 바이비트 UID와 USDT주소를 보내주시면 매주 일요일

일주일간 거래수수료의 20%를 USDT로 돌려드리고 있습니다.

 

바이비트_셀퍼럴_수수료페이백

#바이비트 #비트코인 #바이비트레퍼럴 #바이비트수수료

open.kakao.com

   

 

문의 카카오톡 : sososoll 

문의 텔레그램 : @coinDeveloper123

유튜브 : https://www.youtube.com/@user-sx6tc3rk6n

728x90
728x90

아직도 바이비트 거래수수료 남에게 기부하고 있나요?


바이비트에는 레퍼럴이라는 시스템을 통해 수수료할인을 20%가 아닌 40%를 받을수 있다는 사실을 알고계셨나요?

바이비트 선물거래를 이용하시고 계신분이라면 이글을 꼭 읽으셔야 합니다. 매달 여러분 시드의 10%를 누군가에게 기부하고 있습니다.

 

안녕하세요. 오늘은 바이빗 레퍼럴에 대해 자세히 알아보려고 하는데요

유튜브 , 인터넷에서 홍보중인 바이비트 수수료20% 할인 가입링크를 통해 회원가입을 하실경우

수수료를 20%할인받으며, 이러한 링크를 통해 회원가입을 시킨 사람은 회원가입 한 사람의 수수료20%를 레퍼럴 수익으로 받을수 있습니다.

 

그래서 많은 방송인들이 자극적인 코인방송을 통해  레퍼럴을 목적으로

회원가입을 유도하고 있는것입니다.

 

 

위와같은 구조로 다른 방송인의 가입링크로 바이비트 회원가입을 할 경우 여러분은 거래수수료 20%할인받으면서 , 방송인은 여러분의 수수료 20%를 수익으로 가져가게 됩니다.

 

하지만  2023년부터는 20%거래수수료할인 + 20% 수수료를 돌려받을수 있습니다.

 

 

바이비트 셀퍼럴방법(수수료20%할인 + 거래수수료20% 페이백)


 

바로 셀퍼럴을 이용하는건데요 원칙적으로는 자신이 만든 가입링크에 자신이 회원가입을 할경우 며 수수료할인이 15%밖에 되지않고, 거래정지 및 계정정지가 됩니다.

저는 2021년부터 바이비트 API를 이용한 자동매매 프로그램 등 여러 개발을 해오고 유튜브 활동을 통해

바이비트 공식파트너 혜택을 받아 초대가입링크가 20% 할인이며 여러 혜택을 받고있으며, 바이비트 한국담당 레퍼럴 관리자님한테 문의결과 셀퍼럴은 계정정지지만, 남의 레퍼럴로 가입한후 가입자에게 레퍼럴 수익을 돌려주는것은 상관없다고 합니다.(오피셜)

 

저는 바이비트에서 고정금액 1000달러로 10배 레버리지 선물거래를 하고있는데요, 저는 수수료20%할인을 받아 한달 거래량이 100만달러이고, 레퍼럴 페이백 금액이 116달러이더라구요 , 이제는 수수료할인뿐만 아니라 꼭 거래수수료를 페이백 밷아야합니다 ㅎㅎ....

 

셀퍼럴 방법

 

1. https://partner.bybit.com/b/developer  이 가입링크를 통해 새로 계정을 가입합니다.(수수료 20%할인 + 수수료20% 매주 페이백)

 

 

Welcome to Bybit | Register, Trade & Earn High Rewards | Bybit

Welcome to Bybit. Start your crypto journey by creating an account to trade and earn rewards. Securely sign up today with your phone number or email.

www.bybit.com

 

2. https://open.kakao.com/o/sPw0aTWe 카톡으로 자신의 바이비트 UID와 USDT주소를 보내주시면 매주 일요일

일주일간 거래수수료의 20%를 USDT로 돌려드리고 있습니다.

 

바이비트_셀퍼럴_수수료페이백

#바이비트 #비트코인 #바이비트레퍼럴 #바이비트수수료

open.kakao.com

   

 

문의 카카오톡 : sososoll 

문의 텔레그램 : @coinDeveloper123

유튜브 : https://www.youtube.com/@user-sx6tc3rk6n

 

728x90
728x90

<프로젝트 소개>


 

바이낸스 리더보드는 바이낸스 선물거래 유저들의 실시간 포지션과 수익률을 보여주는 사이트 입니다.

리더보드 사이트(https://www.binance.com/en/futures-activity/leaderboard/)

 

실제로 누적수익 250억 트레이더, 누적수익률이 15,000%인 트레이더 등 수많은 최상위 트레이더가 리더보드 사이트에

존재하며

 

이러한 사이트에서 자신이 따라하고싶은 트레이더를 선택하여 그 트레이더와 100% 똑같이 매수,매도가 자동으로 이루어지는 자동매매 프로그램을 개발하였습니다.

 

바이비트 API를 통해 거래가 이루어지기때문에 카피트레이딩 수수료가 전혀 존재하지 않으며 누구나 무료로 이용이 가능

합니다.

 

혼자서 진행한 개인프로젝트 이기때문에 UI/UX는 다소 유저친화적이지 않을수도 있지만 기능을 위주로 꾸준히 6달동안 개발하여 완성하였으며 테스팅도 완료하였습니다(유튜브 실시간 방송을 통해 테스트)

바이낸스 리더보드 사이트( https://www.binance.com/en/futures-activity/leaderboard/ )

 

<작동과정>


0. 바이비트 회원가입 및 API키를 발급받습니다 ( * 프로그램은 무료로 이용이 가능하나, 바이비트 제휴가입링크를 통해 가입하신분만 무료로 이용이 가능합니다.)

 

1. 바이낸스 리더보드 사이트에서 자신이 따라하고싶은 트레이더를 선택한 후 URL 주소를 프로그램에 입력합니다.

 

2. 레버리지, 운용자금 , 주문비율 등을 입력하고 카피트레이딩을 시작하면 끝입니다.

 

 

 

< 후기 > 


약 1만 달러로 CnTraderT  라는 트레이더를 카피트레이딩 한 결과 12월 약  8000달러의 수익이 발생했습니다.

CnTraderT 트레이더는 12월 93%의 수익률이 나왔지만 저는 약 85%의 수익률이 나왔습니다. 카피트레이딩 딜레이로 인해 조금(10~1분) 차이나는거 같습니다만 잘 작동하는듯 합니다. 

 

아무래도 최상위 트레이더같은 경우 추세매매를 하며 손절과 익절을 정확히 하기때문에 

카피트레이딩 할때  레버리지를 낮게 이용하면 안정적인 수익이 발생하는거 같습니다. 

 

 

 

 

 

< 프로그램 설치링크 & FAQ >


https://drive.google.com/file/d/1Q2K4JvtwzJZ1J-tSnaWE1sih1V-X-Z5O/view

 

build.zip

 

drive.google.com

 

dist 폴더 안에있는 exe파일을 실행하시면 됩니다.

 

 

프로그램은 바이비트 제휴가입링크를 통해 회원가입 하신 계정으로만 구동가능합니다. 

바이비트 제휴가입링크를 통해 가입하실경우 수수료 최대20%할인 + 증정금 지급이 되므로

기존에 계정이 있으신분들도 새로 가입하시는게 좋을듯합니다.

(https://partner.bybit.com/b/developer)

 

Buy & Sell Bitcoin, Ether | Cryptocurrency Exchange | Bybit

Crypto trading experience elevated. Buy, sell, trade BTC, altcoins & NFTs. Get access to the spot and futures market or stake your coins securely.

www.bybit.com

 

<이용문의 & 유튜브>


카카오톡 :  sososoll

유튜브 :  https://www.youtube.com/watch?v=VGaeYc-69rM 

 

728x90
728x90

인증방식의 종류(Cookie & Session & Token)


서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키,세션,토큰 3가지 방식이 존재합니다.

 

 

Cookie인증

쿠키는 Key-Value 형식의 여러개의 문자열 형식이라 생각하면 됩니다.

우리가 크롬을 통해 네이버라는 웹사이트에 방문할경우, 네이버가 사용하고 있는 서버를 통해 클라이언트의 브라우저에

설치되는 작은 기록 정보 파일입니다.

각 사용자마다 브라우저에 정보를 저장하니 고유 정보 식별이 가능한것

 

(크롬 개발자모드 F12를 통해 확인할수있다)

 

Cookie 인증방식

 

1.클라이언트가  서버에 요청(requests)을 보낸다.

 

2.서버는 클라이언트 접속요청에 대한 응답(response)을 작성하는데, 클라이언트 측에 저장하고 싶은 정보의 응답헤더의 Set-Cookie에 담는다

 

3. 이후 클라이언트는 서버에 대한 요청(requests)를 보낼때마다 2번 과정에서 설정한 쿠키값들을 요청헤더(requests header)에 담아서 보내고 서버는 쿠키에 담긴 정보를 바탕으로 해당 요청의 클라이언트가 누군지 식별함 

 

 

이러한 Cookie 인증방식의 단점은

보안에 취약하며 , 쿠키에는 용량제한이 있어 많은정보를 담을수없다. , 쿠키의 사이즈가 커질수록 네트워크에 부하가 심해진다.

728x90

+ Recent posts