이미지
  [인공지능] Meta AI LLaMA 모델을 사용하여 주식 예측 프로그램 만들기 Meta AI (Facebook)의 LLaMA 모델을 사용하여 주식 예측 프로그램을 작성하는 방법을 소개하겠습니다. LLaMA 모델은 Meta에서 개발한 대규모 언어 모델로, 다양한 자연어 처리 작업에 활용될 수 있습니다. 주식 예측 프로그램을 작성하기 위해서는 주식 데이터를 가져오고, 이를 LLaMA 모델에 입력하여 예측을 수행하는 과정을 포함합니다. 다음은 Python을 사용하여 LLaMA 모델을 활용한 주식 예측 프로그램의 예제 코드입니다: import yfinance as yf import matplotlib.pyplot as plt import torch from transformers import LlamaForCausalLM, LlamaTokenizer # 주식 데이터를 가져오는 함수 def fetch_stock_data (ticker, start_date, end_date) : stock = yf.download(ticker, start=start_date, end=end_date) return stock # 주식 차트를 그리는 함수 def plot_stock_chart (stock_data, ticker) : plt.figure(figsize=( 12 , 6 )) plt.plot(stock_data[ 'Close' ], label= f' {ticker} Closing Price' ) plt.title( f' {ticker} Stock Price Chart' ) plt.xlabel( 'Date' ) plt.ylabel( 'Price' ) plt.legend() plt.grid() plt.show() # LLaMA 모델을 사용하여 주식 예측을 수행하는 함수 def analyze_s...

(블록체인) Truffle 설치 - 스마트 계약 개발 환경 구성 (truffle, ganache-cli, solc )

 



Truffle 설치 와 스마트 계약(Smart Contract) 개발

1. Truffle 설치 - 스마트 계약 개발 환경 구성 (truffle, ganache-cli, solc )
    - npm install -g truffle
    - npm install -g ganache-cli
    - npm install -g solc

2. Truffle 사용 - 스마트 계약(Smart Contract)개발
   - truffle create contract YourContractName
   - truffle create test YourTestName 

3. [Truffle 환경 설정] 컴파일 오류 대처 - Error: Failed to fetch the Solidity compiler from the following locations:
     - Are you connected to the internet?

4.  [Truffle 환경 설정] Deploy 오류 대처 - Error: Could not find artifacts for SimpleStorage from any sources
  - throw new Error("Could not find artifacts for " + import_path + " from any sources");

 



 

1. Truffle 설치 - 스마트 계약 개발 환경 구성 (truffle, ganache-cli, solc )

 
Truffle은 Ethereum 스마트 계약(Smart Contract)을 개발하고 배포하기 위한 강력한 개발 도구이며, Ethereum 블록체인 기반의 분산 응용 프로그램(DApp)을 더욱 쉽게 개발할 수 있도록 지원합니다. Truffle은 개발자들이 스마트 계약, 테스트 및 배포를 관리하는 데 도움이 되는 다양한 기능을 제공합니다.
 
Truffle은 스마트 계약(Smart Contract)을 개발하고 컴파일, 배포, 테스트 하는 과정을 쉽게 할 수 있습니다.
1. smart contract의 컴파일 (compile) : solc, solcjs로 solidity 소스를 컴파일 합니다.
2. smart contract의 배포 (migrate) : 컴파일한 소스를 배포 할 수 있습니다.
3. smart contract의 테스트 (test) : 배포된 contract를 테스트 합니다.
 
 

1. Truffle 의 주요 기능

1. 스마트 계약 개발:
Truffle은 스마트 계약을 Solidity와 같은 Ethereum 지원 언어로 작성할 수 있도록 지원합니다. 개발자들은 Truffle을 사용하여 스마트 계약을 빠르고 효율적으로 개발할 수 있습니다.

2. 스마트 계약 컴파일 및 배포:
Truffle은 스마트 계약을 컴파일하고 Ethereum 네트워크에 배포하는 데 필요한 작업들을 자동화하여  빠르게 배포하고 테스트할 수 있습니다.

3. 스마트 계약 테스트:
  Truffle은 스마트 계약의 기능을  테스트하고  스마트 계약의 동작을 확인하고 버그를 찾아내는데 도움을 줍니다.

4. Migrations:
  Truffle은 스마트 계약의 배포를 관리하는 "Migrations" 기능을 제공하고  스마트 계약의 업그레이드와 버전 관리를 수행할 수 있습니다.

6. 자산 관리:
 - Truffle은 블록체인 기반의 자산 (예: 토큰)을 쉽게 관리할 수 있는 기능을 제공합니다.

 
Truffle은 개발자들이 Ethereum 블록체인을 활용한 분산 응용 프로그램 (DApp)을 개발하는데 매우 유용한 도구이며, Ethereum 개발 생태계에서 스마트 계약의 개발과 관리를 보다 편리하고 효율적으로 수행할 수 있습니다.
 
 

2. Truffle 설치 전 nodejs 환경 구성 (엄청 중요함)

    - truffle 은 개발 언어로  nodejs 환경을 이용하므로 설치 버전에 따라 작동이 안될수 있습니다. 저도 안되어서 한참 헤메었습니다. 
     * 특히 금융 전산망에서는 SSL을 통한 파일 다운로드가 안되어서 더 힘들게 설치하고 있습니다.
     반드시 truffle 설치전에 LTS (long-term support) 최신 Stable 버전을 확인하고  LTS 버전을 설치후에 진행 바랍니다.

     >> 인터넷에서  nvm을 이용한 nodejs 버전 관리 방법을 참조하여 설치 진행 바랍니다.
           (관련 게시글은 조만간 작성할 예정입니다.)

 

 

3. Truffle 설치 확인

#다음 명령어를 입력하여 트러플이 설치되어있는지 확인합니다.
$truffle

#트러플이 설치되어있지 않다면 (root 계정으로)
# npm install -g truffle 명령어를 입력해 설치합니다.


#truffle --version
Truffle v5.11.1 (core: 5.11.1)
Ganache v7.9.0
Solidity v0.5.16 (solc-js)
Node v18.17.0
Web3.js v1.10.0

 

  • npm:
  • Node.js 패키지 관리자로, Node.js 환경에서 소프트웨어 패키지를 설치하고 관리하는 도구입니다.
  • npm은 JavaScript 생태계에서 매우 인기있는 패키지 관리자로 사용되며, 수많은 패키지를 쉽게 다운로드 및 관리할 수 있게 해줍니다.

 

  • npm  install:
  • npm 명령어 중 하나로, 패키지를 설치하는 데 사용됩니다. npm install 명령은 지정된 패키지를 현재 프로젝트에 로컬로 설치합니다.

 

  • npm install  -g: 
  • npm install 명령에 붙이는 옵션으로, 패키지를 전역(global)으로 설치하도록 지정합니다. 전역 설치를 하면 해당 패키지는 시스템 전체에서 사용할 수 있습니다. 일반적으로 독립적인 도구 또는 프레임워크와 같은 것들을 전역 설치합니다.

 

  • npm install -g truffle 명령:
  • Node.js 패키지 관리자인 npm을 사용하여 Truffle 프레임워크를 시스템 전체에 전역 설치하는 것입니다. 이로써 Ethereum 스마트 계약 개발과 관련된 다양한 작업을 수행할 수 있게 됩니다.

 
 

4. 설치 테스트

truffle 이 설치되었는지 확인하는 방법은 version을 이용할 수 있습니다. 
 2023.7월 현재 nodejs LTS 버전은  v18.17.0 이고 이 글을 보는 시점에는 LTS 버전이 다를수 있습니다.
반드시  https://nodejs.org/ko" 를 참조하여 확인후 nodejs도 설치 바랍니다.

[ipman@vm1 ~]$ truffle --version
Truffle v5.11.1 (core: 5.11.1)
Ganache v7.9.0
Solidity v0.5.16 (solc-js)
Node v18.17.0
Web3.js v1.10.0

 

아래 node v16 버전에서 작동하지 않습니다. 반드시 최신 LTS를 설치하고 진행 바랍니다.

[root@vm1 app_svc]# truffle version
Truffle v5.11.1 (core: 5.11.1)
Ganache v7.9.0
Solidity v0.5.16 (solc-js)
Node v16.18.1
Web3.js v1.10.0

 

만약 Truffle이 설치되지 않았다면, 해당 명령을 실행하면 command not found 또는 유사한 오류가 발생할 수 있습니다. 

 

5. truffle에 필요한 추가 개발 도구 설치

 

npm install -g truffle
npm install -g ganache-cli
npm install -g solc

 
Solidity 컴파일러 (solc)를 설치
Solidity 컴파일러를 설치합니다.
터미널 또는 명령 프롬프트에서 다음 명령을 사용하여 Solidity 컴파일러를 설치합니다.

npm install -g solc

설치가 완료되면, 다시 truffle test 명령을 실행하여 테스트를 수행 할 수 있습니다.
* 인터넷에 연결되어 있는지 않은 환경에서 다음과 같은 에러가 발생하므로 solc를 설치 해야 합니다.

Error: Failed to fetch the Solidity compiler from the following locations: 
https://relay.trufflesuite.com/solc/emscripten-wasm32/,
https://binaries.soliditylang.org/emscripten-wasm32/,
https://relay.trufflesuite.com/solc/emscripten-asmjs/,
https://binaries.soliditylang.org/emscripten-asmjs/,
https://solc-bin.ethereum.org/bin/,https://ethereum.github.io/solc-bin/bin/.
Are you connected to the internet?

 
ganache-cli 설치와 실행

npm install -g ganache-cli

ganache-cli  -h 0.0.0.0 -p 8545

ganache-cli는 로컬 개발용 Ethereum 블록체인을 구축해주는 명령줄 도구입니다. Truffle은 이를 자동으로 감지하고 사용할 수 있습니다. 
* 다음에  truffle test 명령을 실행할 때, Truffle은 ganache-cli가 실행 중인 로컬 블록체인과 상호작용하여 스마트 계약을 배포하고 테스트를 수행합니다. 이렇게 함으로써 실제 Ethereum 네트워크를 설치하지 않고도 테스트를 수행할 수 있습니다.

6. truffle 프로젝트 생성 

Truffle 프로젝트 생성: 새로운 스마트 계약 프로젝트를 만들기 위해 프로젝트 디렉토리를 생성합니다. 그리고 해당 디렉토리로 이동한 후에 다음 명령을 실행하여 Truffle 프로젝트를 생성합니다:

mkdir truffle
cd truffle

truffle init  # 현재 디렉토리를 초기화 합니다.

root@vm1 truffle2]# truffle init

Starting init...
================

> Copying project files to /app_svc/truffle2

Init successful, sweet!

Try our scaffold commands to get started:
  $ truffle create contract YourContractName # scaffold a contract
  $ truffle create test YourTestName         # scaffold a test

http://trufflesuite.com/docs

 
초기화된 폴더에서 샘플 스마트 계약과 테스트 스크립트를 작성합니다.

truffle create contract TestStorage
truffle create test TestStorage

# 다음과 같은 파일들이 작성이 되었습니다.
# ./contracts/TestStorage.sol
# ./test/test_storage.js
#./truffle-config.js

 

7. truffle-config.js 수정

다음과 같이 solc와 ganache  에 대한 설정을 "truffle-config.js"를 수정합니다.

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545, // ganache-cli가 사용하는 포트로 변경합니다.
      network_id: "*", // 어떤 네트워크 ID에도 연결합니다.
    },
  },
  compilers: {
    solc: {
      // version: "^0.8.0",
      version: "/usr/local/bin/solcjs",  // local에 설치된 solcjs를 확인합니다.
    },
  },
};

 
Truffle 의 기본 설정은 여기 까지 입니다. 다음 내용은 Truffle을 이용한 스마트 컨트렉트 작성을 참조 바랍니다.
 
* Truffle의 테스트 기능은 스마트 계약의 변경 사항이나 업데이트 후에도 기능들이 여전히 예상대로 동작하는지 확인하는 데에도 유용하며, Ethereum 블록체인과 상호작용하는 애플리케이션의 안정성을 향상시키는 데에 큰 도움을 줍니다.



출처 :Truffle설치 기초 :  https://couplewith.tistory.com/491

댓글

이 블로그의 인기 게시물

(truffle 환경 설정) 스마트 계약 배포 와 truffle deploy 오류 해결 - Error: Could not find artifacts for SimpleStorage from any sources

SSL/TLS 인증서 오류를 해결- 리눅스명령모음 - SSL certificate problem

[Ubuntu]Linux Tunning -네트워크 커널 매개 변수 최적화